| @@ -42,7 +42,7 @@ namespace Discord | |||||
| } | } | ||||
| catch (OperationCanceledException) | catch (OperationCanceledException) | ||||
| { | { | ||||
| throw _disconnectReason; | |||||
| throw _disconnectReason;// ?? new Exception("Operation was cancelled"); | |||||
| } | } | ||||
| try { _connectWaitOnLogin2.Wait(cancelToken); } //Waiting on READY handler | try { _connectWaitOnLogin2.Wait(cancelToken); } //Waiting on READY handler | ||||
| catch (OperationCanceledException) { return; } | catch (OperationCanceledException) { return; } | ||||
| @@ -58,7 +58,7 @@ namespace Discord | |||||
| protected override void OnConnect() | protected override void OnConnect() | ||||
| { | { | ||||
| _udp = new UdpClient(new IPEndPoint(IPAddress.Any, 0)); | _udp = new UdpClient(new IPEndPoint(IPAddress.Any, 0)); | ||||
| #if !DNX451 | |||||
| #if !DNX451 && !MONO | |||||
| _udp.AllowNatTraversal(true); | _udp.AllowNatTraversal(true); | ||||
| #endif | #endif | ||||
| _isReady = false; | _isReady = false; | ||||
| @@ -132,7 +132,6 @@ namespace Discord | |||||
| catch (OperationCanceledException) { } | catch (OperationCanceledException) { } | ||||
| catch (ObjectDisposedException) { } | catch (ObjectDisposedException) { } | ||||
| catch (Exception ex) { DisconnectInternal(ex); } | catch (Exception ex) { DisconnectInternal(ex); } | ||||
| finally { DisconnectInternal(); } | |||||
| } | } | ||||
| #if USE_THREAD | #if USE_THREAD | ||||
| @@ -213,7 +212,6 @@ namespace Discord | |||||
| catch (OperationCanceledException) { } | catch (OperationCanceledException) { } | ||||
| catch (ObjectDisposedException) { } | catch (ObjectDisposedException) { } | ||||
| catch (Exception ex) { DisconnectInternal(ex); } | catch (Exception ex) { DisconnectInternal(ex); } | ||||
| finally { DisconnectInternal(); } | |||||
| } | } | ||||
| #endif | #endif | ||||
| //Closes the UDP socket when _disconnectToken is triggered, since UDPClient doesn't allow passing a canceltoken | //Closes the UDP socket when _disconnectToken is triggered, since UDPClient doesn't allow passing a canceltoken | ||||
| @@ -97,11 +97,7 @@ namespace Discord | |||||
| try { await _task; } catch (NullReferenceException) { } | try { await _task; } catch (NullReferenceException) { } | ||||
| } | } | ||||
| } | } | ||||
| protected void DisconnectInternal() | |||||
| { | |||||
| _disconnectToken.Cancel(); | |||||
| } | |||||
| protected void DisconnectInternal(Exception ex, bool isUnexpected = true) | protected void DisconnectInternal(Exception ex, bool isUnexpected = true) | ||||
| { | { | ||||
| if (_disconnectReason == null) | if (_disconnectReason == null) | ||||
| @@ -186,7 +182,6 @@ namespace Discord | |||||
| } | } | ||||
| catch (OperationCanceledException) { } | catch (OperationCanceledException) { } | ||||
| catch (Exception ex) { DisconnectInternal(ex); } | catch (Exception ex) { DisconnectInternal(ex); } | ||||
| finally { DisconnectInternal(); } | |||||
| } | } | ||||
| private async Task SendAsync() | private async Task SendAsync() | ||||
| { | { | ||||
| @@ -215,7 +210,6 @@ namespace Discord | |||||
| } | } | ||||
| catch (OperationCanceledException) { } | catch (OperationCanceledException) { } | ||||
| catch (Exception ex) { DisconnectInternal(ex); } | catch (Exception ex) { DisconnectInternal(ex); } | ||||
| finally { DisconnectInternal(); } | |||||
| } | } | ||||
| protected abstract Task ProcessMessage(string json); | protected abstract Task ProcessMessage(string json); | ||||