diff options
-rw-r--r-- | opentracker.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/opentracker.c b/opentracker.c index 2fb6bf5..9e0a18c 100644 --- a/opentracker.c +++ b/opentracker.c | |||
@@ -628,31 +628,31 @@ static void handle_udp4( int64 serversocket ) { | |||
628 | case 3: OT_FLAG( &peer ) |= PEER_FLAG_STOPPED; break; | 628 | case 3: OT_FLAG( &peer ) |= PEER_FLAG_STOPPED; break; |
629 | default: break; | 629 | default: break; |
630 | } | 630 | } |
631 | |||
631 | if( !left ) | 632 | if( !left ) |
632 | OT_FLAG( &peer ) |= PEER_FLAG_SEEDING; | 633 | OT_FLAG( &peer ) |= PEER_FLAG_SEEDING; |
633 | 634 | ||
635 | outpacket[0] = htonl( 1 ); /* announce action */ | ||
636 | outpacket[1] = inpacket[12/4]; | ||
637 | |||
634 | if( OT_FLAG( &peer ) & PEER_FLAG_STOPPED ) { | 638 | if( OT_FLAG( &peer ) & PEER_FLAG_STOPPED ) { |
635 | /* Peer is gone. */ | 639 | /* Peer is gone. */ |
636 | remove_peer_from_torrent( hash, &peer ); | 640 | remove_peer_from_torrent( hash, &peer ); |
637 | 641 | ||
638 | /* Create fake packet to satisfy parser on the other end */ | 642 | /* Create fake packet to satisfy parser on the other end */ |
639 | outpacket[0] = htonl( 1 ); | ||
640 | outpacket[1] = inpacket[12/4]; | ||
641 | outpacket[2] = htonl( OT_CLIENT_REQUEST_INTERVAL_RANDOM ); | 643 | outpacket[2] = htonl( OT_CLIENT_REQUEST_INTERVAL_RANDOM ); |
642 | outpacket[3] = outpacket[4] = 0; | 644 | outpacket[3] = outpacket[4] = 0; |
643 | socket_send4( serversocket, static_outbuf, 20, remoteip, remoteport ); | 645 | r = 20; |
644 | ot_overall_udp_successfulannounces++; | ||
645 | } else { | 646 | } else { |
646 | torrent = add_peer_to_torrent( hash, &peer ); | 647 | torrent = add_peer_to_torrent( hash, &peer ); |
647 | if( !torrent ) | 648 | if( !torrent ) |
648 | return; /* XXX maybe send error */ | 649 | return; /* XXX maybe send error */ |
649 | 650 | ||
650 | outpacket[0] = htonl( 1 ); /* announce action */ | ||
651 | outpacket[1] = inpacket[12/4]; | ||
652 | r = 8 + return_peers_for_torrent( torrent, numwant, static_outbuf + 8, 0 ); | 651 | r = 8 + return_peers_for_torrent( torrent, numwant, static_outbuf + 8, 0 ); |
653 | socket_send4( serversocket, static_outbuf, r, remoteip, remoteport ); | ||
654 | ot_overall_udp_successfulannounces++; | ||
655 | } | 652 | } |
653 | |||
654 | socket_send4( serversocket, static_outbuf, r, remoteip, remoteport ); | ||
655 | ot_overall_udp_successfulannounces++; | ||
656 | break; | 656 | break; |
657 | 657 | ||
658 | case 2: /* This is a scrape action */ | 658 | case 2: /* This is a scrape action */ |