public UpdateLatency ( |
||
server | ||
latency | System.TimeSpan | |
return | void |
private void ConnectCallback(IAsyncResult ar) { if (_closed) { return; } try { var session = (AsyncSession <ServerTimer>)ar.AsyncState; ServerTimer timer = session.State; _server = timer.Server; timer.Elapsed -= DestConnectTimer_Elapsed; timer.Enabled = false; timer.Dispose(); var remote = session.Remote; // Complete the connection. remote.EndConnectDest(ar); _destConnected = true; if (_config.isVerboseLogging) { Logging.Info($"Socket connected to ss server: {_server.FriendlyName()}"); } var latency = DateTime.Now - _startConnectTime; IStrategy strategy = _controller.GetCurrentStrategy(); strategy?.UpdateLatency(_server, latency); _tcprelay.UpdateLatency(_server, latency); StartPipe(session); } catch (ArgumentException) { } catch (Exception e) { if (_server != null) { IStrategy strategy = _controller.GetCurrentStrategy(); strategy?.SetFailure(_server); } Logging.LogUsefulException(e); Close(); } }
private void ConnectCallback(IAsyncResult ar) { Server server = null; if (closed) { return; } try { ServerTimer timer = (ServerTimer)ar.AsyncState; server = timer.Server; timer.Elapsed -= connectTimer_Elapsed; timer.Enabled = false; timer.Dispose(); // Complete the connection. remote.EndConnect(ar); connected = true; Logging.Debug($"Socket connected to {remote.RemoteEndPoint}"); var latency = DateTime.Now - _startConnectTime; IStrategy strategy = controller.GetCurrentStrategy(); strategy?.UpdateLatency(server, latency); tcprelay.UpdateLatency(server, latency); StartPipe(); } catch (ArgumentException) { } catch (Exception e) { if (server != null) { IStrategy strategy = controller.GetCurrentStrategy(); if (strategy != null) { strategy.SetFailure(server); } } Logging.LogUsefulException(e); RetryConnect(); } }