private void Dtls_OnIncomingHandshakeStarted(object Sender, RemoteEndpointEventArgs e) { IPEndPoint EP = (IPEndPoint)e.RemoteEndpoint; if (!this.dtlsStates.TryGetValue(EP, out DtlsOverUdpState State)) { State = new DtlsOverUdpState() { RemoteEndpoint = EP, Queue = new LinkedList <Tuple <byte[], UdpTransmissionEventHandler, object> >(), CurrentState = DtlsState.Handshake }; this.dtlsStates.Add(EP, State); } }
private void Dtls_OnHandshakeSuccessful(object sender, RemoteEndpointEventArgs e) { IPEndPoint EP = (IPEndPoint)e.RemoteEndpoint; if (this.dtlsStates.TryGetValue(EP, out DtlsOverUdpState State)) { State.Done(this, true); } else { State = new DtlsOverUdpState() { RemoteEndpoint = EP, Queue = new LinkedList <Tuple <byte[], UdpTransmissionEventHandler, object> >(), CurrentState = DtlsState.SessionEstablished }; this.dtlsStates.Add(EP, State); } }