|
|
@ -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];
|
|
|
|