From 5f785e716cab32edb6cbc8d859bb6475e670f834 Mon Sep 17 00:00:00 2001 From: Arne Fitzenreiter Date: Tue, 12 Aug 2008 20:41:44 +0200 Subject: [PATCH] Change persistant network rules to work with atheros/hostapd without removing the blue0 rule change hostapd initskript for other cards than atheros --- src/initscripts/init.d/hostapd | 36 +++++++++++++++++++------- src/install+setup/libsmooth/netstuff.c | 2 +- 2 files changed, 27 insertions(+), 11 deletions(-) diff --git a/src/initscripts/init.d/hostapd b/src/initscripts/init.d/hostapd index 271aaab926..2d228b3037 100644 --- a/src/initscripts/init.d/hostapd +++ b/src/initscripts/init.d/hostapd @@ -4,23 +4,39 @@ case "${1}" in start) - boot_mesg -n "Starting hostapd... " + boot_mesg "Starting hostapd... " mkdir -p /var/run/hostapd # enable wlan module of collectd sed -i -e "s|#LoadPlugin wireless|LoadPlugin wireless|g" /etc/collectd.conf - /usr/bin/wlanconfig ath0 destroy - /usr/bin/wlanconfig blue0 create wlandev wifi0 wlanmode ap - /usr/sbin/iwconfig blue0 channel 05 - /usr/bin/hostapd -P /var/run/hostapd /etc/hostapd.conf /dev/tty12 2>&1 & - evaluate_retval + + # Set Atheros Card to master mode + /usr/bin/wlanconfig blue0 destroy > /dev/null + /usr/bin/wlanconfig blue0 create wlandev wifi0 wlanmode ap > /dev/null + + # Set other cards to master mode + #/usr/sbin/iwconfig blue0 mode master + + if [ "$(/usr/sbin/iwconfig blue0 | /bin/grep "Mode:Master")" == "" ]; then + boot_mesg "Error! Can't set wlan master mode" + echo_failure; + exit 1; + else + /usr/sbin/iwconfig blue0 channel 05 + /usr/bin/hostapd -P /var/run/hostapd /etc/hostapd.conf /dev/tty12 2>&1 & + evaluate_retval + fi ;; stop) boot_mesg "Stopping hostapd..." - # Just make sure when going down the first time blue0 nw values are ignored - grep -v 'NAME="blue0"' /etc/udev/rules.d/30-persistent-network.rules > /tmp/30-persistent-network.rules - mv /tmp/30-persistent-network.rules /etc/udev/rules.d/30-persistent-network.rules - /usr/bin/wlanconfig blue0 destroy + + # Set Atheros Card to Managed mode + /usr/bin/wlanconfig blue0 destroy > /dev/null + /usr/bin/wlanconfig blue0 create wlandev wifi0 wlanmode sta > /dev/null + + # Set other cards to master mode + #/usr/sbin/iwconfig blue0 mode Managed + killproc /usr/bin/hostapd evaluate_retval ;; diff --git a/src/install+setup/libsmooth/netstuff.c b/src/install+setup/libsmooth/netstuff.c index 193c734586..eb0c4e7990 100644 --- a/src/install+setup/libsmooth/netstuff.c +++ b/src/install+setup/libsmooth/netstuff.c @@ -504,7 +504,7 @@ int create_udev(void) for (i = 0 ; i < 4 ; i++) { if (strcmp(knics[i].macaddr, "")) { - fprintf(fp,"ACTION==\"add\", SUBSYSTEM==\"net\", SYSFS{address}==\"%s\", NAME=\"%s0\" # %s\n", knics[i].macaddr, lcolourcard[i], knics[i].description); + fprintf(fp,"ACTION==\"add\", SUBSYSTEM==\"net\", SYSFS{type}==\"1\", SYSFS{address}==\"%s\", NAME=\"%s0\" # %s\n", knics[i].macaddr, lcolourcard[i], knics[i].description); } } fclose(fp); -- 2.39.2