feat: improve NLPacket header parsing and logging in parseDomainPacket

This commit is contained in:
MayaTheShy
2025-11-08 17:50:21 -05:00
parent b94a1d8ca6
commit 920b1edbef

View File

@@ -268,16 +268,17 @@ void OverteClient::parseDomainPacket(const char* data, size_t len) {
if (len < 6) return; // NLPacket header is minimum 6 bytes if (len < 6) return; // NLPacket header is minimum 6 bytes
// Parse NLPacket header // Parse NLPacket header
auto header = NLPacket::parseHeader(data, len); NLPacket::Header header;
if (!header) { const uint8_t* udata = reinterpret_cast<const uint8_t*>(data);
if (!NLPacket::parseHeader(udata, len, header)) {
std::cerr << "[OverteClient] Failed to parse NLPacket header" << std::endl; std::cerr << "[OverteClient] Failed to parse NLPacket header" << std::endl;
return; return;
} }
PacketType packetType = NLPacket::getType(data, len); PacketType packetType = NLPacket::getType(udata, len);
std::cout << "[OverteClient] Domain packet type: " << static_cast<int>(packetType) std::cout << "[OverteClient] Domain packet type: " << static_cast<int>(packetType)
<< " (0x" << std::hex << static_cast<int>(packetType) << std::dec << ")" << " (0x" << std::hex << static_cast<int>(packetType) << std::dec << ")"
<< " version: " << (int)header->version << std::endl; << " version: " << (int)header.version << std::endl;
// Payload starts after header (6 bytes base, +2 if has source ID) // Payload starts after header (6 bytes base, +2 if has source ID)
const char* payload = data + 6; // Assuming no source ID for now const char* payload = data + 6; // Assuming no source ID for now
@@ -292,10 +293,6 @@ void OverteClient::parseDomainPacket(const char* data, size_t len) {
handleDomainConnectionDenied(payload, payloadLen); handleDomainConnectionDenied(payload, payloadLen);
break; break;
case PacketType::DomainServerConnectionDenied:
handleDomainConnectionDenied(payload, payloadLen);
break;
case PacketType::DomainServerRequireDTLS: case PacketType::DomainServerRequireDTLS:
std::cout << "[OverteClient] Domain server requires DTLS (not yet implemented)" << std::endl; std::cout << "[OverteClient] Domain server requires DTLS (not yet implemented)" << std::endl;
break; break;