From 02b3abbab639625afdd02f0f0a9965fdf49f4996 Mon Sep 17 00:00:00 2001 From: erdgeist <> Date: Thu, 15 Jan 2009 16:20:47 +0000 Subject: Make v4 and v6 modes v4/v6-ONLY --- opentracker.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) 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( ) { static int64_t ot_try_bind( ot_ip6 ip, uint16_t port, PROTO_FLAG proto ) { int64 s = proto == FLAG_TCP ? socket_tcp6( ) : socket_udp6( ); +#ifndef WANT_V6 + if( !ip6_isv4mapped(ip) ) { + exerr( "V4 Tracker is V4 only!" ); + } +#else + if( ip6_isv4mapped(ip) ) { + exerr( "V6 Tracker is V6 only!" ); + } +#endif + #ifdef _DEBUG char *protos[] = {"TCP","UDP","UDP mcast"}; char _debug[512]; @@ -420,6 +430,9 @@ int main( int argc, char **argv ) { uint16_t tmpport; memset( serverip, 0, sizeof(ot_ip6) ); +#ifndef WANT_V6 + serverip[10]=serverip[11]=0xff; +#endif while( scanon ) { switch( getopt( argc, argv, ":i:p:A:P:d:r:s:f:v" -- cgit v1.2.3