Quellcode durchsuchen

Check that mac address gets generated

Bob Mottram vor 7 Jahren
Ursprung
Commit
81c2c54493
1 geänderte Dateien mit 46 neuen und 41 gelöschten Zeilen
  1. 46
    41
      src/freedombone-mesh-batman

+ 46
- 41
src/freedombone-mesh-batman Datei anzeigen

@@ -229,13 +229,15 @@ function start {
229 229
 
230 230
     ifconfig $IFACE down
231 231
     ifconfig $IFACE mtu 1532
232
-    peeraddr=$(assign_peer_address)
233
-    ifconfig $IFACE hw ether $peeraddr
234
-    echo $"$IFACE assigned MAC address $peeraddr"
232
+    peermac=$(assign_peer_address)
233
+    if [ ! $peermac ]; then
234
+        echo $"Unable to obtain MAC address for $peermac"
235
+        return
236
+    fi
237
+    ifconfig $IFACE hw ether $peermac
238
+    echo $"$IFACE assigned MAC address $peermac"
235 239
     iwconfig $IFACE enc off
236 240
     iwconfig $IFACE mode ad-hoc essid $WIFI_SSID channel $CHANNEL
237
-    sleep 1
238
-    iwconfig $IFACE ap $CELLID
239 241
 
240 242
     modprobe batman-adv
241 243
     batctl if add $IFACE
@@ -264,42 +266,45 @@ function start {
264 266
                 HOTSPOT_NAME=$"${WIFI_SSID}-hotspot"
265 267
                 ifconfig $IFACE_SECONDARY down
266 268
                 ifconfig $IFACE_SECONDARY mtu 1500
267
-                peeraddr=$(assign_peer_address)
268
-                ifconfig $IFACE_SECONDARY hw ether $peeraddr
269
-                echo $"Secondary wifi adaptor $IFACE_SECONDARY assigned to MAC address $peeraddr"
270
-                iwconfig $IFACE_SECONDARY enc open
271
-                iwconfig $IFACE_SECONDARY mode managed essid $HOTSPOT_NAME channel ${HOTSPOT_CHANNEL}
272
-                iwconfig $IFACE_SECONDARY ap $CELLID
273
-
274
-                brctl addbr $BRIDGE_HOTSPOT
275
-                brctl addif $BRIDGE_HOTSPOT bat0
276
-                brctl addif $BRIDGE_HOTSPOT $IFACE_SECONDARY
277
-                ifconfig bat0 0.0.0.0
278
-                ifconfig $IFACE_SECONDARY 0.0.0.0
279
-
280
-                sed -i 's|#DAEMON_CONF=.*|DAEMON_CONF="/etc/hostapd/hostapd.conf"|g' /etc/default/hostapd
281
-
282
-                echo "interface=${IFACE_SECONDARY}" > /etc/hostapd/hostapd.conf
283
-                echo "bridge=${BRIDGE_HOTSPOT}" >> /etc/hostapd/hostapd.conf
284
-                echo 'driver=nl80211' >> /etc/hostapd/hostapd.conf
285
-                echo "country_code=UK" >> /etc/hostapd/hostapd.conf
286
-                echo "ssid=$HOTSPOT_NAME" >> /etc/hostapd/hostapd.conf
287
-                echo 'hw_mode=g' >> /etc/hostapd/hostapd.conf
288
-                echo "channel=${HOTSPOT_CHANNEL}" >> /etc/hostapd/hostapd.conf
289
-                echo 'wpa=2' >> /etc/hostapd/hostapd.conf
290
-                echo "wpa_passphrase=$HOTSPOT_PASSPHRASE" >> /etc/hostapd/hostapd.conf
291
-                echo 'wpa_key_mgmt=WPA-PSK' >> /etc/hostapd/hostapd.conf
292
-                echo 'wpa_pairwise=TKIP' >> /etc/hostapd/hostapd.conf
293
-                echo 'rsn_pairwise=CCMP' >> /etc/hostapd/hostapd.conf
294
-                echo 'auth_algs=1' >> /etc/hostapd/hostapd.conf
295
-                echo 'macaddr_acl=0' >> /etc/hostapd/hostapd.conf
296
-
297
-                ifconfig $BRIDGE_HOTSPOT up
298
-                avahi-autoipd --force-bind --daemonize --wait $BRIDGE_HOTSPOT
299
-                ifconfig $IFACE_SECONDARY up promisc
300
-                #ifconfig $IFACE_SECONDARY auto-dhcp start
301
-                systemctl start hostapd
302
-                hotspot_enabled=1
269
+                CELLID=$(assign_peer_address)
270
+                if [ $CELLID ]; then
271
+                    ifconfig $IFACE_SECONDARY hw ether $CELLID
272
+                    echo $"Secondary wifi adaptor $IFACE_SECONDARY assigned to MAC address $CELLID"
273
+                    iwconfig $IFACE_SECONDARY enc open
274
+                    iwconfig $IFACE_SECONDARY mode managed essid $HOTSPOT_NAME channel ${HOTSPOT_CHANNEL}
275
+                    iwconfig $IFACE_SECONDARY ap $CELLID
276
+                    iwconfig $IFACE ap $CELLID
277
+
278
+                    brctl addbr $BRIDGE_HOTSPOT
279
+                    brctl addif $BRIDGE_HOTSPOT bat0
280
+                    brctl addif $BRIDGE_HOTSPOT $IFACE_SECONDARY
281
+                    ifconfig bat0 0.0.0.0
282
+                    ifconfig $IFACE_SECONDARY 0.0.0.0
283
+
284
+                    sed -i 's|#DAEMON_CONF=.*|DAEMON_CONF="/etc/hostapd/hostapd.conf"|g' /etc/default/hostapd
285
+
286
+                    echo "interface=${IFACE_SECONDARY}" > /etc/hostapd/hostapd.conf
287
+                    echo "bridge=${BRIDGE_HOTSPOT}" >> /etc/hostapd/hostapd.conf
288
+                    echo 'driver=nl80211' >> /etc/hostapd/hostapd.conf
289
+                    echo "country_code=UK" >> /etc/hostapd/hostapd.conf
290
+                    echo "ssid=$HOTSPOT_NAME" >> /etc/hostapd/hostapd.conf
291
+                    echo 'hw_mode=g' >> /etc/hostapd/hostapd.conf
292
+                    echo "channel=${HOTSPOT_CHANNEL}" >> /etc/hostapd/hostapd.conf
293
+                    echo 'wpa=2' >> /etc/hostapd/hostapd.conf
294
+                    echo "wpa_passphrase=$HOTSPOT_PASSPHRASE" >> /etc/hostapd/hostapd.conf
295
+                    echo 'wpa_key_mgmt=WPA-PSK' >> /etc/hostapd/hostapd.conf
296
+                    echo 'wpa_pairwise=TKIP' >> /etc/hostapd/hostapd.conf
297
+                    echo 'rsn_pairwise=CCMP' >> /etc/hostapd/hostapd.conf
298
+                    echo 'auth_algs=1' >> /etc/hostapd/hostapd.conf
299
+                    echo 'macaddr_acl=0' >> /etc/hostapd/hostapd.conf
300
+
301
+                    ifconfig $BRIDGE_HOTSPOT up
302
+                    avahi-autoipd --force-bind --daemonize --wait $BRIDGE_HOTSPOT
303
+                    ifconfig $IFACE_SECONDARY up promisc
304
+                    #ifconfig $IFACE_SECONDARY auto-dhcp start
305
+                    systemctl start hostapd
306
+                    hotspot_enabled=1
307
+                fi
303 308
             fi
304 309
         fi
305 310
     fi