Esempio n. 1
0
        private void receiveCallback(IAsyncResult ar)
        {
            IRCIdentStateObject so = (IRCIdentStateObject)ar.AsyncState;

            int intRead = so.socket.EndReceive(ar);

            if (so.socket.Connected)
            {
                if (intRead > 0)
                {
                    string strData = Encoding.Default.GetString(so.buffer, 0, intRead);
                    strData = strData.Replace("\r", "").Replace("\n", "");
                    if (strData.IndexOf(",") > -1)
                    {
                        string[] strPorts = strData.Split(new char[] { ',' });
                        if (strPorts.Length == 2 && strPorts[0].Trim() == base.CurrentConnection.LocalPort.ToString() && strPorts[1].Trim() == base.CurrentConnection.RemotePort.ToString())
                        {
                            SendData(strData + " : Identity : " + strOS + " : " + ircParent.Identity, so.socket, true);
                        }
                        else
                        {
                            SendData(strData + " : ERROR : NO-USER", so.socket, false);
                        }
                    }
                    else
                    {
                        so.socket.Shutdown(SocketShutdown.Both);
                        so.socket.Close();
                        so.socket = null;
                    }
                }
                else
                {
                    so.socket.Shutdown(SocketShutdown.Both);
                    so.socket.Close();
                    so.socket = null;
                }
            }
        }
Esempio n. 2
0
        private void incomingConnection(IAsyncResult ar)
        {
            if (listenSocket != null)
            {
                Socket newSocket = listenSocket.EndAccept(ar);
                this.Listen = false;

                if (newSocket != null && newSocket.Connected)
                {
                    if (CompareAddressBytes(((IPEndPoint)newSocket.RemoteEndPoint).Address.GetAddressBytes(), base.CurrentConnection.RemoteIP))
                    {
                        IRCIdentStateObject so = new IRCIdentStateObject(newSocket);
                        newSocket.BeginReceive(so.buffer, 0, IRCIdentStateObject.bufferSize, SocketFlags.None, new AsyncCallback(receiveCallback), so);
                    }
                    else
                    {
                        newSocket.Shutdown(SocketShutdown.Both);
                        newSocket.Close();
                        newSocket = null;
                    }
                }
            }
        }
Esempio n. 3
0
        private void incomingConnection(IAsyncResult ar)
        {
            if (listenSocket != null)
            {
                Socket newSocket = listenSocket.EndAccept(ar);
                this.Listen = false;

                if (newSocket != null && newSocket.Connected)
                {
                    if (CompareAddressBytes(((IPEndPoint)newSocket.RemoteEndPoint).Address.GetAddressBytes(), base.CurrentConnection.RemoteIP))
                    {
                        IRCIdentStateObject so = new IRCIdentStateObject(newSocket);
                        newSocket.BeginReceive(so.buffer, 0, IRCIdentStateObject.bufferSize, SocketFlags.None, new AsyncCallback(receiveCallback), so);
                    }
                    else
                    {
                        newSocket.Shutdown(SocketShutdown.Both);
                        newSocket.Close();
                        newSocket = null;
                    }
                }
            }
        }