//----------------------------------------------------------------------------- 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 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); } } }