diff options
Diffstat (limited to 'opentracker.c')
-rw-r--r-- | opentracker.c | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/opentracker.c b/opentracker.c index f9dc48b..0d4f2b5 100644 --- a/opentracker.c +++ b/opentracker.c | |||
@@ -154,7 +154,7 @@ static void senddata( const int64 s, char *buffer, size_t size ) { | |||
154 | array_reset( &h->request ); | 154 | array_reset( &h->request ); |
155 | 155 | ||
156 | written_size = write( s, buffer, size ); | 156 | written_size = write( s, buffer, size ); |
157 | if( ( written_size < 0 ) || ( written_size == size ) ) { | 157 | if( ( written_size < 0 ) || ( (size_t)written_size == size ) ) { |
158 | free( h ); io_close( s ); | 158 | free( h ); io_close( s ); |
159 | } else { | 159 | } else { |
160 | char * outbuf = malloc( size - written_size ); | 160 | char * outbuf = malloc( size - written_size ); |
@@ -594,15 +594,15 @@ static void handle_timeouted( void ) { | |||
594 | } | 594 | } |
595 | 595 | ||
596 | static void handle_udp4( int64 serversocket ) { | 596 | static void handle_udp4( int64 serversocket ) { |
597 | ot_peer peer; | 597 | ot_peer peer; |
598 | ot_torrent *torrent; | 598 | ot_torrent *torrent; |
599 | ot_hash *hash = NULL; | 599 | ot_hash *hash = NULL; |
600 | char remoteip[4]; | 600 | char remoteip[4]; |
601 | unsigned long *inpacket = (unsigned long*)static_inbuf; | 601 | ot_dword *inpacket = (ot_dword*)static_inbuf; |
602 | unsigned long *outpacket = (unsigned long*)static_outbuf; | 602 | ot_dword *outpacket = (ot_dword*)static_outbuf; |
603 | unsigned long numwant, left, event; | 603 | ot_dword numwant, left, event; |
604 | uint16 port, remoteport; | 604 | ot_word port, remoteport; |
605 | size_t r, r_out; | 605 | size_t r, r_out; |
606 | 606 | ||
607 | r = socket_recv4( serversocket, static_inbuf, 8192, remoteip, &remoteport); | 607 | r = socket_recv4( serversocket, static_inbuf, 8192, remoteip, &remoteport); |
608 | 608 | ||
@@ -627,8 +627,9 @@ static void handle_udp4( int64 serversocket ) { | |||
627 | numwant = 200; | 627 | numwant = 200; |
628 | /* We do only want to know, if it is zero */ | 628 | /* We do only want to know, if it is zero */ |
629 | left = inpacket[64/4] | inpacket[68/4]; | 629 | left = inpacket[64/4] | inpacket[68/4]; |
630 | |||
630 | event = ntohl( inpacket[80/4] ); | 631 | event = ntohl( inpacket[80/4] ); |
631 | port = *(unsigned short*)( static_inbuf + 96 ); | 632 | port = *(ot_word*)( static_inbuf + 96 ); |
632 | hash = (ot_hash*)( static_inbuf + 16 ); | 633 | hash = (ot_hash*)( static_inbuf + 16 ); |
633 | 634 | ||
634 | OT_SETIP( &peer, remoteip ); | 635 | OT_SETIP( &peer, remoteip ); |