mirror of
https://github.com/overte-org/overte.git
synced 2025-08-09 13:09:52 +02:00
Merge pull request #1187 from ZappoMan/bugfixes
added more debugging for server crashes
This commit is contained in:
commit
3454bf3fd1
2 changed files with 24 additions and 1 deletions
|
@ -32,6 +32,10 @@ bool ReceivedPacketProcessor::process() {
|
||||||
}
|
}
|
||||||
while (_packets.size() > 0) {
|
while (_packets.size() > 0) {
|
||||||
NetworkPacket& packet = _packets.front();
|
NetworkPacket& packet = _packets.front();
|
||||||
|
|
||||||
|
printf("ReceivedPacketProcessor::process() calling processPacket() NetworkPacket=%p packet.getData()=%p packet.getLength()=%ld\n",
|
||||||
|
&packet, packet.getData(), packet.getLength() );
|
||||||
|
|
||||||
processPacket(packet.getAddress(), packet.getData(), packet.getLength());
|
processPacket(packet.getAddress(), packet.getData(), packet.getLength());
|
||||||
|
|
||||||
lock();
|
lock();
|
||||||
|
|
|
@ -24,6 +24,12 @@ VoxelServerPacketProcessor::VoxelServerPacketProcessor(VoxelServer* myServer) :
|
||||||
|
|
||||||
void VoxelServerPacketProcessor::processPacket(sockaddr& senderAddress, unsigned char* packetData, ssize_t packetLength) {
|
void VoxelServerPacketProcessor::processPacket(sockaddr& senderAddress, unsigned char* packetData, ssize_t packetLength) {
|
||||||
|
|
||||||
|
bool debugProcessPacket = true; // temporarily debugging....
|
||||||
|
|
||||||
|
if (debugProcessPacket) {
|
||||||
|
printf("VoxelServerPacketProcessor::processPacket(() packetData=%p packetLength=%ld\n", packetData, packetLength);
|
||||||
|
}
|
||||||
|
|
||||||
int numBytesPacketHeader = numBytesForPacketHeader(packetData);
|
int numBytesPacketHeader = numBytesForPacketHeader(packetData);
|
||||||
|
|
||||||
if (packetData[0] == PACKET_TYPE_SET_VOXEL || packetData[0] == PACKET_TYPE_SET_VOXEL_DESTRUCTIVE) {
|
if (packetData[0] == PACKET_TYPE_SET_VOXEL || packetData[0] == PACKET_TYPE_SET_VOXEL_DESTRUCTIVE) {
|
||||||
|
@ -41,7 +47,7 @@ void VoxelServerPacketProcessor::processPacket(sockaddr& senderAddress, unsigned
|
||||||
packetLength, itemNumber);
|
packetLength, itemNumber);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_myServer->wantsDebugVoxelReceiving()) {
|
if (debugProcessPacket || _myServer->wantsDebugVoxelReceiving()) {
|
||||||
printf("got %s - %d command from client receivedBytes=%ld itemNumber=%d\n",
|
printf("got %s - %d command from client receivedBytes=%ld itemNumber=%d\n",
|
||||||
destructive ? "PACKET_TYPE_SET_VOXEL_DESTRUCTIVE" : "PACKET_TYPE_SET_VOXEL",
|
destructive ? "PACKET_TYPE_SET_VOXEL_DESTRUCTIVE" : "PACKET_TYPE_SET_VOXEL",
|
||||||
_receivedPacketCount, packetLength, itemNumber);
|
_receivedPacketCount, packetLength, itemNumber);
|
||||||
|
@ -50,6 +56,13 @@ void VoxelServerPacketProcessor::processPacket(sockaddr& senderAddress, unsigned
|
||||||
unsigned char* voxelData = (unsigned char*)&packetData[atByte];
|
unsigned char* voxelData = (unsigned char*)&packetData[atByte];
|
||||||
while (atByte < packetLength) {
|
while (atByte < packetLength) {
|
||||||
int maxSize = packetLength - atByte;
|
int maxSize = packetLength - atByte;
|
||||||
|
|
||||||
|
if (debugProcessPacket) {
|
||||||
|
printf("VoxelServerPacketProcessor::processPacket(() %s packetData=%p packetLength=%ld voxelData=%p atByte=%d maxSize=%d\n",
|
||||||
|
destructive ? "PACKET_TYPE_SET_VOXEL_DESTRUCTIVE" : "PACKET_TYPE_SET_VOXEL",
|
||||||
|
packetData, packetLength, voxelData, atByte, maxSize);
|
||||||
|
}
|
||||||
|
|
||||||
int octets = numberOfThreeBitSectionsInCode(voxelData, maxSize);
|
int octets = numberOfThreeBitSectionsInCode(voxelData, maxSize);
|
||||||
|
|
||||||
if (octets == OVERFLOWED_OCTCODE_BUFFER) {
|
if (octets == OVERFLOWED_OCTCODE_BUFFER) {
|
||||||
|
@ -84,6 +97,12 @@ void VoxelServerPacketProcessor::processPacket(sockaddr& senderAddress, unsigned
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (debugProcessPacket) {
|
||||||
|
printf("VoxelServerPacketProcessor::processPacket(() DONE LOOPING FOR %s packetData=%p packetLength=%ld voxelData=%p atByte=%d\n",
|
||||||
|
destructive ? "PACKET_TYPE_SET_VOXEL_DESTRUCTIVE" : "PACKET_TYPE_SET_VOXEL",
|
||||||
|
packetData, packetLength, voxelData, atByte);
|
||||||
|
}
|
||||||
|
|
||||||
// Make sure our Node and NodeList knows we've heard from this node.
|
// Make sure our Node and NodeList knows we've heard from this node.
|
||||||
Node* node = NodeList::getInstance()->nodeWithAddress(&senderAddress);
|
Node* node = NodeList::getInstance()->nodeWithAddress(&senderAddress);
|
||||||
if (node) {
|
if (node) {
|
||||||
|
|
Loading…
Reference in a new issue