mirror of
git://erdgeist.org/opentracker
synced 2025-01-11 15:30:07 +00:00
Fix endianess issues, also obey number of peers requested in udp announces
This commit is contained in:
parent
90184649d0
commit
cadf1803e1
4
ot_udp.c
4
ot_udp.c
@ -84,10 +84,12 @@ void handle_udp4( int64 serversocket ) {
|
|||||||
/* if( !udp_test_connectionid( inpacket, remoteip ))
|
/* if( !udp_test_connectionid( inpacket, remoteip ))
|
||||||
fprintf( stderr, "UDP Connection id missmatch.\n" ); */
|
fprintf( stderr, "UDP Connection id missmatch.\n" ); */
|
||||||
|
|
||||||
numwant = 200;
|
|
||||||
/* We do only want to know, if it is zero */
|
/* We do only want to know, if it is zero */
|
||||||
left = inpacket[64/4] | inpacket[68/4];
|
left = inpacket[64/4] | inpacket[68/4];
|
||||||
|
|
||||||
|
numwant = ntohl( inpacket[92/4] );
|
||||||
|
if (numwant > 200) numwant = 200;
|
||||||
|
|
||||||
event = ntohl( inpacket[80/4] );
|
event = ntohl( inpacket[80/4] );
|
||||||
port = *(uint16_t*)( static_inbuf + 96 );
|
port = *(uint16_t*)( static_inbuf + 96 );
|
||||||
hash = (ot_hash*)( static_inbuf + 16 );
|
hash = (ot_hash*)( static_inbuf + 16 );
|
||||||
|
@ -304,8 +304,8 @@ exit_loop:
|
|||||||
|
|
||||||
/* else { Handle UDP reply */
|
/* else { Handle UDP reply */
|
||||||
((uint32_t*)reply)[2] = htonl( OT_CLIENT_REQUEST_INTERVAL_RANDOM );
|
((uint32_t*)reply)[2] = htonl( OT_CLIENT_REQUEST_INTERVAL_RANDOM );
|
||||||
((uint32_t*)reply)[3] = peer_list->peer_count - peer_list->seed_count;
|
((uint32_t*)reply)[3] = htonl( peer_list->peer_count - peer_list->seed_count );
|
||||||
((uint32_t*)reply)[4] = peer_list->seed_count;
|
((uint32_t*)reply)[4] = htonl( peer_list->seed_count);
|
||||||
|
|
||||||
mutex_bucket_unlock_by_hash( hash );
|
mutex_bucket_unlock_by_hash( hash );
|
||||||
return (size_t)20;
|
return (size_t)20;
|
||||||
|
Loading…
Reference in New Issue
Block a user