Commit graph

228 commits

Author SHA1 Message Date
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 4ca8b9568c Merge branch 'master' of https://github.com/ppanhoto78/TLSharp 2018-01-08 16:53:49 -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
ppanhoto78 73022fc37c
Update README.md 2018-01-04 19:43:22 -02:00
ppanhoto78 bf20298109
Update README.md 2018-01-04 19:40:50 -02:00
ppanhoto78 42ace63b28
Update README.md
Changed to highlight the changes to the fork.
2018-01-04 19:39:26 -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
Andres G. Aragoneses 687eca968a
Merge pull request #659 from PROger4ever/master
Make Session constructor public for custom ISessionStore imlementations
2017-12-18 00:09:43 +08: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
Andres G. Aragoneses b55b28fa5d
Merge pull request #629 from aarani/master
Handle Import & Export Authorization While Reconnecting
2017-11-16 19:16:46 +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
Ilya Pirozhenko 97a593e25e Update README.md 2017-05-04 18:01:13 +03:00
salarcode c5187ae12b Implementing IsConnected
Closes #460
2017-04-26 13:18:17 +08:00
Ilya Pirozhenko 1697db9d7f Update README.md 2017-02-28 16:45:20 +03: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
Ilya Pirozhenko f6ef04ed01 Update README.md 2017-01-29 17:06:22 +03:00
Andres G. Aragoneses fbe8c9bf84 Merge pull request #373 from Starli0n/master
Http proxy authentication
2017-01-27 20:23:44 +08:00
Starli0n 48077961ae Custom TCP hanlder to allow HTTP proxy auth 2017-01-27 10:58:47 +01:00
Andres G. Aragoneses 85c206cc24 Merge pull request #372 from Starli0n/master
Add offset parameter to GetFile() method
2017-01-20 10:03:06 +08:00
Starli0n a753a1ab13 Add offset parameter to GetFile() method 2017-01-19 19:31:27 +01:00
Andres G. Aragoneses 5ddd9a3ad0 Merge pull request #362 from Starli0n/master
Add GetHistoryAsync() to TelegramClient
2017-01-11 17:53:25 +08: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 0428753b2b Merge pull request #350 from salarcode/master
Tests: Use OfType() instead of GetType() == typeof()
2016-12-21 17:07:07 +08:00
Salar Khalilzadeh dfc89dc3ab Tests: Use OfType() instead of GetType() == typeof() 2016-12-20 12:21:18 +03:30
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
Ilya Pirozhenko 3ef3ff86ad Merge pull request #323 from mykolasglinskis/master
FloodExceptionShouldNotCauseCannotReadPackageLengthError
2016-12-15 11:00:06 +03:00
Mykolas Glinskis e191b59233 Tests: include testcase for "couldn't read packet length" bug
It seems that after triggering a FloodException, and waiting the required time
to be able to use Telegram again, TLSharp throws an exception. I include the
way to reproduce this bug as an [Ignore]d test with the hope that someone
may help me fix the problem soon.

For reference, the whole stacktrace of the exception was:

Test Name:	FloodExceptionShouldNotCauseCannotReadPackageLengthError
Test FullName:	TLSharp.Tests.TLSharpTestsVS.FloodExceptionShouldNotCauseCannotReadPackageLengthError
Test Source:	D:\Projects\GitHub\TLSharp\TLSharp.Tests.VS\TLSharpTestsVs.cs : line 72
Test Outcome:	Failed
Test Duration:	0:04:30.7467012

Result StackTrace:
at TLSharp.Core.Network.TcpTransport.<Receieve>d__4.MoveNext() in D:\Projects\GitHub\TLSharp\TLSharp.Core\Network\TcpTransport.cs:line 39
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at TLSharp.Core.Network.MtProtoSender.<Receive>d__9.MoveNext() in D:\Projects\GitHub\TLSharp\TLSharp.Core\Network\MtProtoSender.cs:line 139
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at TLSharp.Core.TelegramClient.<ConnectAsync>d__8.MoveNext() in D:\Projects\GitHub\TLSharp\TLSharp.Core\TelegramClient.cs:line 76
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at TLSharp.Tests.TLSharpTests.<CheckPhones>d__54.MoveNext() in D:\Projects\GitHub\TLSharp\TLSharp.Tests\TLSharpTests.cs:line 329
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
   at TLSharp.Tests.TLSharpTestsVS.<CheckPhones>d__9.MoveNext() in D:\Projects\GitHub\TLSharp\TLSharp.Tests.VS\TLSharpTestsVs.cs:line 68
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
   at TLSharp.Tests.TLSharpTests.<FloodExceptionShouldNotCauseCannotReadPackageLengthError>d__55.MoveNext() in D:\Projects\GitHub\TLSharp\TLSharp.Tests\TLSharpTests.cs:line 340
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
   at TLSharp.Tests.TLSharpTestsVS.<FloodExceptionShouldNotCauseCannotReadPackageLengthError>d__10.MoveNext() in D:\Projects\GitHub\TLSharp\TLSharp.Tests.VS\TLSharpTestsVs.cs:line 73
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
Result Message:
Test method TLSharp.Tests.TLSharpTestsVS.FloodExceptionShouldNotCauseCannotReadPackageLengthError threw exception:
System.InvalidOperationException: Couldn't read the packet length
2016-11-30 09:34:44 +01:00
Ilya Pirozhenko c22ee8dea6 Merge pull request #317 from unn4m3d/patch-1
Catch PhoneMigrationException in IsPhoneRegisteredAsync
2016-11-28 09:56:40 +03:00
unn4m3d 545e736808 Catch PhoneMigrationException in IsPhoneRegisteredAsync 2016-11-27 19:37:15 +10:00
Ilya Pirozhenko 6b3c96eaa6 Merge pull request #289 from knocte/nunitSupport
Tests: add NUnit support
2016-11-17 09:20:07 +03:00
Ilya Pirozhenko ca6e18b50e Merge pull request #306 from aarani/cloud-password
Add Cloud password Support
2016-11-17 09:17:36 +03:00