Paulo Rogerio Panhoto
8180ee94f0
sets the _looping flag to true right from the constructor so if Close() is called before the loop starts, the client will never loop for events.
2018-03-08 16:38:30 -03:00
Paulo Rogerio Panhoto
4c112086aa
Adds another callback recurrent timed tasks.
2018-03-01 19:50:29 -03:00
Paulo Rogerio Panhoto
8b392f5159
Rethrows BadMessageExceptions when parsing container messages.
2018-03-01 15:01:38 -03:00
Paulo Rogerio Panhoto
9f25a7615e
logs exception caught when handling a container message.
2018-03-01 14:45:25 -03:00
Paulo Rogerio Panhoto
01e61f3ea4
New flag to mask event reporting. This is necessary so that Initialisation doesn't get interrupted by any event.
2018-03-01 14:10:03 -03:00
Paulo Rogerio Panhoto
b98914ed55
Reports exception to logger where it used to go to console only.
2018-03-01 12:02:22 -03:00
Paulo Rogerio Panhoto
aae366d33c
Captures all network exceptions in a new module.
...
Adds a BadMessageException so that it can be better traced.
2018-02-27 18:07:03 -03:00
Paulo Rogerio Panhoto
57b804e15a
Adds a function to allow the app to terminate a loop and close the client.
2018-02-27 16:42:10 -03:00
Paulo Rogerio Panhoto
f30dc2da43
Disconsider ping delay for purpose of next ping message.
2018-02-22 19:24:29 -03:00
Paulo Rogerio Panhoto
b71a72343c
* Added logging messages.
...
* Implemented ping.
2018-02-22 18:14:07 -03:00
Paulo Rogerio Panhoto
2c8ea9c7ec
Fixed event waiting with timeout.
2018-02-22 16:09:11 -03:00
Paulo Rogerio Panhoto
083e45585d
Fixed buffer "sniffer"
2018-02-22 11:29:14 -03:00
Paulo Rogerio Panhoto
549b831577
Instead of relying on a cancellation token, which caused some confusion on client implementation,
...
Loop will run within constrained intervals which will be the longer waiting period for a scheduled action to run.
2018-02-22 11:12:32 -03:00
Paulo Rogerio Panhoto
a425d142f9
Additional log messages.
2018-02-20 18:43:36 -03:00
Paulo Rogerio Panhoto
ef1f961592
Added debug logging to MtProtoSender, so that state machine can be "visible".
2018-02-20 15:25:20 -03:00
Paulo Rogerio Panhoto
3f5adeb3e9
Clears idle handlers after they've been processed.
2018-02-14 17:04:01 -02:00
Paulo Rogerio Panhoto
15163c534f
Handles correctly the case of null IdleLoop handler.
2018-01-17 15:41:53 -02:00
Paulo Rogerio Panhoto
9ad192c6d6
* Adds a CancellationToken to the "event" API so that it can be interrupted.
...
* There's also a new event that allows a client app to know whether it's safe to do requests without interfering with the event loop.
2018-01-08 16:51:33 -02:00
Paulo Rogerio Panhoto
936a26c6bd
* HandleUpdate fixed for the case where there are no subscribers.
...
* main event loop added to TelegramClient as a single function call.
2018-01-05 11:12:41 -02:00
Paulo Rogerio Panhoto
76362061f6
Updated nuget packages
2018-01-03 19:38:47 -02:00
Paulo Rogerio Panhoto
f871597de7
API modified to receive events instead of relying on polling to update chats.
2018-01-02 18:04:21 -02:00
Paulo Rogério Panhoto
017f5ddc1b
undone the 'async' changes.
2017-12-29 11:39:50 -02:00
Paulo Rogerio Panhoto
cf983474b4
Fixed receive only call.
...
* Must remove debug message "Msg code:" when feature will get complete.
2017-12-28 19:31:13 -02:00
Paulo Rogerio Panhoto
a4a5ae4a2e
First update event attempt.
2017-12-28 18:15:13 -02:00
Paulo Rogerio Panhoto
a69db6ba27
TelegramClient exposes Session as a property so that TLUser can be retrieved by application in case the sign in process is bypassed.
...
Example code:
if (client.IsUserAuthorized())
user = client.Session.TLUser;
else
{
/* sign in or sign up */
}
2017-12-27 17:32:27 -02:00
Paulo Rogerio Panhoto
a8a82f39a5
Modifications to Session and TelegramClient to allow a customised Session object
...
to be passed on to Telegram Client and modify, in example, IP address and port.
2017-12-26 15:27:05 -02:00
PROger4ever
7cbc40a090
Make Session constructor public for custom ISessionStore implementations
...
Load() method in ISessionStore requires public constructor of class Session in some cases.
E.g., loading session from a db or a key-value store, manual loading from text-file, JSON/XML and so on.
2017-12-17 21:04:11 +05:00
Robert Massa
0940d3d982
Prepare requests for re-sending after a DC migration
...
Fixes #608 .
2017-11-21 21:02:51 +08:00
Afshin Arani
d15d87833e
Remove Old FileMigrationException Handler
...
this catch block could never be reached anymore because of changes
proposed in #622
2017-11-16 14:04:24 +03:30
Afshin Arani
1877c9061c
Handle Import & Export Authorization While Reconnecting
...
closes #624
2017-11-16 14:03:31 +03:30
Afshin Arani
659becfd51
Make TLVector implement IList
2017-11-09 20:10:22 +08:00
Afshin Arani
d769dd3c2f
Generator Must Respect MS .NET API guidelines
2017-11-09 19:37:09 +08:00
Robert Massa
3ba3ea53fd
Handle DataCenterMigration exceptions in all methods exposed by TelegramClient
...
This handles the data center migration in more cases.
Fixes bugs like mentioned in #599 .
2017-11-08 09:54:05 +08:00
Daniel Vygolov
0015cf494b
Added new type of DataCenterMigrateException - NetworkMigrateException
...
Now we catch not only PhoneMigrateException but all DataCenterMigrationExceptions and reconnect
Fixes #568
2017-09-29 01:09:48 +08:00
Afshin Arani
133b9fdf6c
TL-Layer: Update To Layer 66 ( #519 )
...
* TL-Layer: Update To Layer 66
2017-07-20 10:07:24 +08:00
AmiNadim
0d55940c12
Added while loop to MakeAuthAsync method. ( #477 )
...
fix PhoneMigrationException by reconnecting to DC on the error .
(fix for #458 )
2017-05-18 21:06:33 +08:00
salarcode
c5187ae12b
Implementing IsConnected
...
Closes #460
2017-04-26 13:18:17 +08:00
Barsham Sotoudeh
26aa35b88a
Add missing "offset" parameter in catch block of the GetFile method ( #402 )
...
This offset optional parameter was added in a753a1ab13
2017-02-17 23:16:55 +08:00
Starli0n
48077961ae
Custom TCP hanlder to allow HTTP proxy auth
2017-01-27 10:58:47 +01:00
Starli0n
a753a1ab13
Add offset parameter to GetFile() method
2017-01-19 19:31:27 +01:00
Starli0n
5e6cf48490
Add GetHistoryAsync() to TelegramClient
2017-01-09 18:25:55 +01:00
Mikhail
47d1c10c9d
Search user by username with send message test. ( #356 )
...
* Search user by username with send message test.
2016-12-28 22:37:34 +08:00
Andres G. Aragoneses
6d73c0e964
Merge pull request #344 from salarcode/master
...
Implement IDisposable in TelegramClient class
2016-12-16 15:00:46 +08:00
salar2k
fc09dba71b
Implementing IDisposable
2016-12-16 10:25:33 +03:30
unn4m3d
545e736808
Catch PhoneMigrationException in IsPhoneRegisteredAsync
2016-11-27 19:37:15 +10:00
Afshin Arani
6f9c328349
Add Cloud Password Support
2016-11-16 17:01:00 +03:30
Eugene Timokhov
8b2f227142
Added possibility to do ping request (SendPingAsync method)
2016-11-07 02:40:19 +03:00
Andres G. Aragoneses
5e9bb6163f
Throw FloodException instead of calling Thread.Sleep()
...
Doing this is better when looking at the problem from at least
these 2 points of view:
a) You're working on TLSharp itself: You might be testing some
new things or running TLSharp's tests. Suddenly, if a FLOOD_WAIT
response happens, there's no clear way to know. You just see the
tests taking forever. But if a test has reached a situation in
which Telegram has returned a FLOOD_WAIT error, it's very likely
that what happens is that the TLSharp operation being tested is
actually buggy, which means that the test should FAIL FAST and
show a stacktrace of the problem so that you can see where in the
code was the FLOOD_WAIT received/caused. You shouldn't need to
kill the run of the test suite and hope to hit the problem again
only when you were using the debugger (to be able to pause
execution and examine a stacktrace of where the execution flow is).
b) You're using TLSharp: if you hit a FLOOD_WAIT problem it may
happen because:
b1) TLSharp has a bug: in this case it's better to throw an
exception so that the user can copy the stacktrace and paste
it into a new Github issue.
b2) Your program uses TLSharp sending excessive requests: you
want to have your program know when you hit the limit, to be
able to fix your program to not be so floody. But a call to
Thread.Sleep() doesn't help you to know this, you just know
that suddenly your program has hung, and you don't know why.
You cannot react to the problem, however with an exception you
can react to the problem (for example by examining the time
that the exception provides, as a TimeSpan property, to know
how much your program needs to wait to be able to use TLSharp
again).
2016-11-01 23:52:58 +08:00
Ilya Pirozhenko
24a9ea1ed9
Merge pull request #277 from knocte/friendlerAuthTestFailures
...
Friendlier exceptions for Auth testing
2016-10-31 11:12:36 +03:00
Andres G. Aragoneses
f062c0a7a1
Friendlier exceptions for Auth testing
...
This change also lets you write the auth code in the
app.config file without the need to recompile/debug.
2016-10-31 00:17:03 +08:00