diff options
Diffstat (limited to 'opentracker.c')
-rw-r--r-- | opentracker.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/opentracker.c b/opentracker.c index 46456dd..91a1f79 100644 --- a/opentracker.c +++ b/opentracker.c | |||
@@ -238,6 +238,16 @@ static void server_mainloop( ) { | |||
238 | static int64_t ot_try_bind( ot_ip6 ip, uint16_t port, PROTO_FLAG proto ) { | 238 | static int64_t ot_try_bind( ot_ip6 ip, uint16_t port, PROTO_FLAG proto ) { |
239 | int64 s = proto == FLAG_TCP ? socket_tcp6( ) : socket_udp6( ); | 239 | int64 s = proto == FLAG_TCP ? socket_tcp6( ) : socket_udp6( ); |
240 | 240 | ||
241 | #ifndef WANT_V6 | ||
242 | if( !ip6_isv4mapped(ip) ) { | ||
243 | exerr( "V4 Tracker is V4 only!" ); | ||
244 | } | ||
245 | #else | ||
246 | if( ip6_isv4mapped(ip) ) { | ||
247 | exerr( "V6 Tracker is V6 only!" ); | ||
248 | } | ||
249 | #endif | ||
250 | |||
241 | #ifdef _DEBUG | 251 | #ifdef _DEBUG |
242 | char *protos[] = {"TCP","UDP","UDP mcast"}; | 252 | char *protos[] = {"TCP","UDP","UDP mcast"}; |
243 | char _debug[512]; | 253 | char _debug[512]; |
@@ -420,6 +430,9 @@ int main( int argc, char **argv ) { | |||
420 | uint16_t tmpport; | 430 | uint16_t tmpport; |
421 | 431 | ||
422 | memset( serverip, 0, sizeof(ot_ip6) ); | 432 | memset( serverip, 0, sizeof(ot_ip6) ); |
433 | #ifndef WANT_V6 | ||
434 | serverip[10]=serverip[11]=0xff; | ||
435 | #endif | ||
423 | 436 | ||
424 | while( scanon ) { | 437 | while( scanon ) { |
425 | switch( getopt( argc, argv, ":i:p:A:P:d:r:s:f:v" | 438 | switch( getopt( argc, argv, ":i:p:A:P:d:r:s:f:v" |