void client_onClientDisconnected(object sender, SocksClientEventArgs e) { e.Client.onClientDisconnected -= client_onClientDisconnected; onClientDisconnected(this, e); this.Clients.Remove(e.Client); }
void client_onClientConnected(object sender, SocksClientEventArgs e) { onClientConnected(this, e); }
void client_onClientDisconnected(object sender, SocksClientEventArgs e) { e.Client.onClientDisconnected -= client_onClientDisconnected; e.Client.Client.onDataReceived -= Client_onDataReceived; e.Client.Client.onDataSent -= Client_onDataSent; this.Clients.Remove(e.Client); foreach (ClientDisconnectedHandler cdh in PluginLoader.LoadPlugin(typeof(ClientDisconnectedHandler))) { try { cdh.OnDisconnected(sender, e); } catch { } } }
/// <summary> /// Handle client disconnected callback. Useful for keeping track of connected clients. /// </summary> public abstract bool OnDisconnected(object sender, SocksClientEventArgs e);
void client_onClientDisconnected(object sender, SocksClientEventArgs e) { e.Client.onClientDisconnected -= client_onClientDisconnected; e.Client.Client.onDataReceived -= Client_onDataReceived; e.Client.Client.onDataSent -= Client_onDataSent; this.Clients.Remove(e.Client); }