|
|
@ -57,6 +57,8 @@ void handle_udp4( int64 serversocket ) { |
|
|
|
if( r < 16 ) |
|
|
|
if( r < 16 ) |
|
|
|
return; |
|
|
|
return; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fprintf( stderr, "UDP Connection id: %16llX\n", *(uint64_t*)inpacket ); |
|
|
|
|
|
|
|
|
|
|
|
switch( ntohl( inpacket[2] ) ) { |
|
|
|
switch( ntohl( inpacket[2] ) ) { |
|
|
|
case 0: /* This is a connect action */ |
|
|
|
case 0: /* This is a connect action */ |
|
|
|
/* look for udp bittorrent magic id */ |
|
|
|
/* look for udp bittorrent magic id */ |
|
|
@ -76,7 +78,7 @@ void handle_udp4( int64 serversocket ) { |
|
|
|
return; |
|
|
|
return; |
|
|
|
|
|
|
|
|
|
|
|
if( !udp_test_connectionid( inpacket, remoteip )) |
|
|
|
if( !udp_test_connectionid( inpacket, remoteip )) |
|
|
|
fprintf( stderr, "UDP Connection id missmatch, %16llX\n", *(uint64_t*)inpacket ); |
|
|
|
fprintf( stderr, "UDP Connection id missmatch.\n" ); |
|
|
|
|
|
|
|
|
|
|
|
numwant = 200; |
|
|
|
numwant = 200; |
|
|
|
/* We do only want to know, if it is zero */ |
|
|
|
/* We do only want to know, if it is zero */ |
|
|
@ -118,7 +120,7 @@ void handle_udp4( int64 serversocket ) { |
|
|
|
|
|
|
|
|
|
|
|
case 2: /* This is a scrape action */ |
|
|
|
case 2: /* This is a scrape action */ |
|
|
|
if( !udp_test_connectionid( inpacket, remoteip )) |
|
|
|
if( !udp_test_connectionid( inpacket, remoteip )) |
|
|
|
fprintf( stderr, "UDP Connection id missmatch, %16llX\n", *(uint64_t*)inpacket ); |
|
|
|
fprintf( stderr, "UDP Connection id missmatch.\n" ); |
|
|
|
|
|
|
|
|
|
|
|
outpacket[0] = htonl( 2 ); /* scrape action */ |
|
|
|
outpacket[0] = htonl( 2 ); /* scrape action */ |
|
|
|
outpacket[1] = inpacket[12/4]; |
|
|
|
outpacket[1] = inpacket[12/4]; |
|
|
|