public void Disconnect(VpnChannel channel) { channel.Stop(); this.socket?.Dispose(); Debug.WriteLine("VPNDEMO: Disconnected"); }
public void Connect(VpnChannel channel) { string serverPort = "8000"; string secret = "test"; string parameters = null; _datagramSocket = new DatagramSocket(); channel.AssociateTransport(_datagramSocket, null); _datagramSocket.MessageReceived += (s, e) => { DataReader dataReader = e.GetDataReader(); if (dataReader.UnconsumedBufferLength > 0 && dataReader.ReadByte() == 0) { parameters = dataReader.ReadString(dataReader.UnconsumedBufferLength); _handshakeState = HandshakeState.Received; } }; var serverHostName = channel.Configuration.ServerHostNameList[0]; XmlDocument xmlDocument = new XmlDocument(); xmlDocument.LoadXml(channel.Configuration.CustomField); var firstChild = xmlDocument.FirstChild; if (firstChild.Name.Equals("ToyVpnConfig")) { foreach (XmlNode childNode in firstChild.ChildNodes) { if (childNode.Name.Equals("ServerPort")) { serverPort = childNode.InnerText; } else if (childNode.Name.Equals("Secret")) { secret = childNode.InnerText; } } } _datagramSocket.ConnectAsync(serverHostName, serverPort).AsTask().GetAwaiter().GetResult(); _handshakeState = HandshakeState.Waiting; HandShake(_datagramSocket, secret).AsTask().GetAwaiter().GetResult(); if (_handshakeState == HandshakeState.Received) { ConfigureAndConnect(channel, parameters); } else { channel.Stop(); } }
public void Disconnect(VpnChannel channel) { State = VpnPluginState.Disconnecting; if (channel.PlugInContext == null) { LogLine("Disconnecting with null context", channel); State = VpnPluginState.Disconnected; return; } else { LogLine("Disconnecting with non-null context", channel); } var context = (VpnContext)channel.PlugInContext; channel.Stop(); LogLine("channel stopped", channel); channel.PlugInContext = null; LogLine("Disconnected", channel); State = VpnPluginState.Disconnected; def?.Complete(); }
public void Disconnect(VpnChannel channel) { try { State = VpnPluginState.Disconnecting; DebugLogger.Log("Stopping channel"); channel.Stop(); DebugLogger.Log("Stopping context"); context.Stop(); DebugLogger.Log("Context stopped"); } catch (Exception ex) { DebugLogger.Log("Error disconnecting: " + ex.ToString()); } finally { State = VpnPluginState.Disconnected; var _ = DebugLogger.ResetLoggers(); DebugLogger.initNeeded = null; } }
public void Disconnect(VpnChannel channel) { channel.Stop(); }
public void Disconnect(VpnChannel channel) { channel.Stop(); channel.PlugInContext = null; }