]> git.ipfire.org Git - thirdparty/opentracker.git/commitdiff
some 64bit and endianess issues with udp...
authorerdgeist <>
Tue, 13 Mar 2007 22:19:03 +0000 (22:19 +0000)
committererdgeist <>
Tue, 13 Mar 2007 22:19:03 +0000 (22:19 +0000)
opentracker.c

index b4386c64dccae50d1c570cc6e94d57c71d920611..a83b276887d47598aaef7bc2b614488d2d5ea8c5 100644 (file)
@@ -584,7 +584,8 @@ static void handle_udp4( int64 serversocket ) {
         return;
 
       numwant = 200;
-      left  = ntohl( inpacket[64/4] );
+      /* We do only want to know, if it is zero */
+      left  = inpacket[64/4] | inpacket[68/4];
       event = ntohl( inpacket[80/4] );
       port  = ntohs( *(unsigned short*)( static_inbuf + 96 ) );
       hash  = (ot_hash*)( static_inbuf + 16 );
@@ -608,7 +609,7 @@ static void handle_udp4( int64 serversocket ) {
         /* Create fake packet to satisfy parser on the other end */
         outpacket[0] = htonl( 1 );
         outpacket[1] = inpacket[12/4];
-        outpacket[2] = OT_CLIENT_REQUEST_INTERVAL_RANDOM;
+        outpacket[2] = htonl( OT_CLIENT_REQUEST_INTERVAL_RANDOM );
         outpacket[3] = outpacket[4] = 0;
         socket_send4( serversocket, static_outbuf, 20, remoteip, port );
       } else {