From: Tim R. <tim...@us...> - 2001-10-30 22:20:38
|
Update of /cvsroot/bzflag/bzflag/src/bzfs In directory usw-pr-cvs1:/tmp/cvs-serv23596/src/bzfs Modified Files: bzfs.cxx Log Message: open udp first, then try multicast. Might fix win* and IRIX bzfs startup. please test\! Index: bzfs.cxx =================================================================== RCS file: /cvsroot/bzflag/bzflag/src/bzfs/bzfs.cxx,v retrieving revision 1.53 retrieving revision 1.54 diff -u -r1.53 -r1.54 --- bzfs.cxx 2001/10/27 21:22:24 1.53 +++ bzfs.cxx 2001/10/30 22:20:33 1.54 @@ -1988,27 +1988,6 @@ } maxFileDescriptor = wksSocket; - // open sockets to receive and reply to pings - Address multicastAddress(BroadcastAddress); - pingInSocket = openMulticast(multicastAddress, ServerPort, NULL, - pingTTL, pingInterface, "r", &pingInAddr); - pingOutSocket = openMulticast(multicastAddress, ServerPort, NULL, - pingTTL, pingInterface, "w", &pingOutAddr); - pingBcastSocket = openBroadcast(BroadcastPort, NULL, &pingBcastAddr); - if (pingInSocket == -1 || pingOutSocket == -1) { - closeMulticast(pingInSocket); - closeMulticast(pingOutSocket); - pingInSocket = -1; - pingOutSocket = -1; - } - else { - maxFileDescriptor = pingOutSocket; - } - if (pingBcastSocket != -1) { - if (pingBcastSocket > maxFileDescriptor) - maxFileDescriptor = pingBcastSocket; - } - if (alsoUDP) { int n; // we open a udp socket on the same port if alsoUDP @@ -2053,6 +2032,27 @@ maxFileDescriptor = udpSocket; } + // open sockets to receive and reply to pings + Address multicastAddress(BroadcastAddress); + pingInSocket = openMulticast(multicastAddress, ServerPort, NULL, + pingTTL, pingInterface, "r", &pingInAddr); + pingOutSocket = openMulticast(multicastAddress, ServerPort, NULL, + pingTTL, pingInterface, "w", &pingOutAddr); + pingBcastSocket = openBroadcast(BroadcastPort, NULL, &pingBcastAddr); + if (pingInSocket == -1 || pingOutSocket == -1) { + closeMulticast(pingInSocket); + closeMulticast(pingOutSocket); + pingInSocket = -1; + pingOutSocket = -1; + } + else { + maxFileDescriptor = pingOutSocket; + } + if (pingBcastSocket != -1) { + if (pingBcastSocket > maxFileDescriptor) + maxFileDescriptor = pingBcastSocket; + } + // initialize player packet relaying to be off relayInSocket = -1; relayOutSocket = -1; @@ -5116,9 +5116,11 @@ // parse arguments parse(argc, argv); - serverAddress = Address::getHostAddress(pingInterface); - if (!pingInterface) - pingInterface = serverAddress.getHostName(); + if (pingInterface) + serverAddress = Address::getHostAddress(pingInterface); +// TimR use 0.0.0.0 by default, multicast will need to have a -i specified for now. +// if (!pingInterface) +// pingInterface = serverAddress.getHostName(); // my address to publish. allow arguments to override (useful for |