From cadf1803e1b36866a9f8a0e57d3b741360928928 Mon Sep 17 00:00:00 2001 From: erdgeist <> Date: Tue, 5 Feb 2008 01:55:06 +0000 Subject: Fix endianess issues, also obey number of peers requested in udp announces --- ot_udp.c | 4 +++- trackerlogic.c | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/ot_udp.c b/ot_udp.c index 3cafd35..c841375 100644 --- a/ot_udp.c +++ b/ot_udp.c @@ -84,10 +84,12 @@ void handle_udp4( int64 serversocket ) { /* if( !udp_test_connectionid( inpacket, remoteip )) fprintf( stderr, "UDP Connection id missmatch.\n" ); */ - numwant = 200; /* We do only want to know, if it is zero */ left = inpacket[64/4] | inpacket[68/4]; + numwant = ntohl( inpacket[92/4] ); + if (numwant > 200) numwant = 200; + event = ntohl( inpacket[80/4] ); port = *(uint16_t*)( static_inbuf + 96 ); hash = (ot_hash*)( static_inbuf + 16 ); diff --git a/trackerlogic.c b/trackerlogic.c index f4bdf0b..fd6a6ee 100644 --- a/trackerlogic.c +++ b/trackerlogic.c @@ -304,8 +304,8 @@ exit_loop: /* else { Handle UDP reply */ ((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)[4] = peer_list->seed_count; + ((uint32_t*)reply)[3] = htonl( peer_list->peer_count - peer_list->seed_count ); + ((uint32_t*)reply)[4] = htonl( peer_list->seed_count); mutex_bucket_unlock_by_hash( hash ); return (size_t)20; -- cgit v1.2.3