bool CPythonNetworkStream::RecvErrorPacket(int header) { TraceError("Phase %s does not handle this header (header: %d, last: %d, %d)", m_strPhase.c_str(), header, g_iLastPacket[0], g_iLastPacket[1]); ClearRecvBuffer(); return true; }
bool CPythonNetworkStream::RecvDefaultPacket(int header) { if (!header) return true; TraceError("처리되지 않은 패킷 헤더 %d, state %s\n", header, m_strPhase.c_str()); ClearRecvBuffer(); return true; }
CStream::CStream() { m_BufferReadPoint = 0; m_BufferWritePoint = 0; SetBuffer(BUF_SIZE); ClearRecvBuffer(); ClearSendBuffer(); ResetRecvPoint(); ResetSendPoint(); }
bool CPythonNetworkStream::CheckPacket(TPacketHeader * pRetHeader) { *pRetHeader = 0; static CMainPacketHeaderMap s_packetHeaderMap; TPacketHeader header; if (!Peek(sizeof(TPacketHeader), &header)) return false; if (0 == header) { if (!Recv(sizeof(TPacketHeader), &header)) return false; while (Peek(sizeof(TPacketHeader), &header)) { if (0 == header) { if (!Recv(sizeof(TPacketHeader), &header)) return false; } else { break; } } if (0 == header) return false; } CNetworkPacketHeaderMap::TPacketType PacketType; if (!s_packetHeaderMap.Get(header, &PacketType)) { TraceError("Unknown packet header: %d, last: %d %d", header, g_iLastPacket[0], g_iLastPacket[1]); ClearRecvBuffer(); PostQuitMessage(0); return false; } // Code for dynamic size packet if (PacketType.isDynamicSizePacket) { TDynamicSizePacketHeader DynamicSizePacketHeader; if (!Peek(sizeof(TDynamicSizePacketHeader), &DynamicSizePacketHeader)) return false; if (!Peek(DynamicSizePacketHeader.size)) { Tracef("CPythonNetworkStream::CheckPacket - Not enough dynamic packet size: header %d packet size: %d\n", DynamicSizePacketHeader.header, DynamicSizePacketHeader.size); return false; } } else { if (!Peek(PacketType.iPacketSize)) { //Tracef("Not enough packet size: header %d packet size: %d, recv buffer size: %d", // header, // PacketType.iPacketSize, // GetRecvBufferSize()); return false; } } if (!header) return false; *pRetHeader = header; g_iLastPacket[0] = g_iLastPacket[1]; g_iLastPacket[1] = header; //Tracenf("header %d size %d", header, PacketType.iPacketSize); //Tracenf("header %d size %d outputpos[%d] security %u", header, PacketType.iPacketSize, m_recvBufOutputPos, IsSecurityMode()); return true; }