]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
P2P: Use alternative way of starting dnsmasq if needed
authorJouni Malinen <jouni.malinen@atheros.com>
Fri, 26 Nov 2010 13:47:13 +0000 (15:47 +0200)
committerJouni Malinen <j@w1.fi>
Fri, 26 Nov 2010 13:47:13 +0000 (15:47 +0200)
Some other dnsmasq users (like libvirt) seem to be binding the DHCP
server to all interfaces which prevents the previously used mechanism
here from working (bind on the DHCP socket fails). If a failure is
noticed, try to start dnsmasq with -z option to avoid that.

wpa_supplicant/examples/p2p-action.sh

index 38fd8d65d9c6e983f6fe3f9aea5244296f2ffda2..8759f5401e8ea16831cd073e80e56661a60ae59b 100755 (executable)
@@ -27,9 +27,15 @@ if [ "$CMD" = "P2P-GROUP-STARTED" ]; then
        rm /var/run/dhclient.leases-$GIFNAME
        kill_daemon dnsmasq /var/run/dnsmasq.pid-$GIFNAME
        ifconfig $GIFNAME 192.168.42.1 up
-       dnsmasq -x /var/run/dnsmasq.pid-$GIFNAME \
+       if ! dnsmasq -x /var/run/dnsmasq.pid-$GIFNAME \
            -i $GIFNAME \
-           -F192.168.42.11,192.168.42.99
+           -F192.168.42.11,192.168.42.99; then
+           # another dnsmasq instance may be running and blocking us; try to
+           # start with -z to avoid that
+           dnsmasq -x /var/run/dnsmasq.pid-$GIFNAME \
+               -i $GIFNAME \
+               -F192.168.42.11,192.168.42.99 --listen-address 192.168.42.1 -z
+       fi
     fi
     if [ "$4" = "client" ]; then
        kill_daemon dhclient /var/run/dhclient-$GIFNAME.pid