Example #1
0
        //-----------------------------------------------------------------------------

        public RelaySession(RelaySessionArgs arg, PacketDispatcher packetProcessor)
        {
            m_io_lock          = new object();
            m_args             = arg;
            m_pck_processor    = packetProcessor;
            m_state            = new RelaySessionState();
            m_module_connected = false;
            m_client_sec       = new Security();
            m_module_sec       = new Security();
            m_client_buffer    = new byte[Global.RecvBuffersSize];
            m_module_buffer    = new byte[Global.RecvBuffersSize];

            m_state["ip_address"] = Utility.GetRemoteEpString(m_args.ClientSocket);

            m_client_sec.GenerateSecurity(m_args.Blowfish, m_args.SecBytes, m_args.Handshake);

            m_args.ClientSocket.NoDelay = true;
            m_module_sock.NoDelay       = true;
        }
        //-----------------------------------------------------------------------------
        public RelaySession(RelaySessionArgs arg, PacketDispatcher packetProcessor)
        {
            m_io_lock = new object();
            m_args = arg;
            m_pck_processor = packetProcessor;
            m_state = new RelaySessionState();
            m_module_connected = false;
            m_client_sec = new Security();
            m_module_sec = new Security();
            m_client_buffer = new byte[Global.RecvBuffersSize];
            m_module_buffer = new byte[Global.RecvBuffersSize];

            m_state["ip_address"] = Utility.GetRemoteEpString(m_args.ClientSocket);

            m_client_sec.GenerateSecurity(m_args.Blowfish, m_args.SecBytes, m_args.Handshake);

            m_args.ClientSocket.NoDelay = true;
            m_module_sock.NoDelay = true;
        }
Example #3
0
        public void WritePacketLog(Packet pck, PacketDirection pckDir, RelaySessionState sessionState)
        {
            if (Global.EnablePacketLog && m_enable_file_output)
            {
                lock (m_class_lock)
                {
                    //Format packet dump

                    /*
                     * Time
                     * Packet direction / Opcode / encrypted / massive
                     * RelaySessionState dump
                     * Packet dump
                     * */
                    string str =
                        string.Format("[{0}]\r\n" +
                                      "[{1}, 0x{2:X}, {3}, {4}]\r\n" +
                                      "[RelaySessionState dump begin]\r\n" +
                                      "{5}" +
                                      "[RelaySessionState dump end]\r\n" +
                                      "{6}\r\n\r\n",

                                      DateTime.Now,
                                      pckDir,
                                      pck.Opcode,
                                      pck.Encrypted,
                                      pck.Massive,
                                      sessionState.Dump(),
                                      Utility.HexDump(pck.GetBytes())
                                      );
                    WriteToPacketLogFile(str);
                }
            }
        }