diff options
Diffstat (limited to 'src/connections')
-rw-r--r-- | src/connections/ethernet | 26 | ||||
-rw-r--r-- | src/connections/wireless | 5 |
2 files changed, 21 insertions, 10 deletions
diff --git a/src/connections/ethernet b/src/connections/ethernet index f9c660c..04d65fa 100644 --- a/src/connections/ethernet +++ b/src/connections/ethernet @@ -37,7 +37,12 @@ ethernet_up() { . "$SUBR_DIR/8021x" [[ -z "$WPA_CONF" ]] && WPA_CONF="/etc/wpa_supplicant.conf" [[ -z "$WPA_DRIVER" ]] && WPA_DRIVER="wired" - + # Set wpa_supplicant control path (FS#25473) + WPA_CTRL_PATH=/var/run/wpa_supplicant + if grep "^ *ctrl_interface=" "$WPA_CONF" &>/dev/null; then + WPA_CTRL_PATH=$(grep -m 1 "^ *ctrl_interface=" "$WPA_CONF" | tail -n 1 | cut -d= -f 2- | sed -r 's/DIR=(.*) +GROUP=.*/\1/') + fi + report_debug ethernet_iproute_up start_wpa "$INTERFACE" "$WPA_CONF" "$WPA_DRIVER" "$WPA_OPTS" if ! start_wpa "$INTERFACE" "$WPA_CONF" "$WPA_DRIVER" "$WPA_OPTS"; then report_fail "wpa_supplicant did not start, possible configuration error" @@ -127,6 +132,19 @@ ethernet_up() { done fi + # Load ipv6 module if necessary (FS#25530) + case "$IP6" in + dhcp*|stateless|static) + [ -d "/proc/sys/net/ipv6" ] || modprobe ipv6 + ;; + ""|no) + [ -d /proc/sys/net/ipv6 ] && sysctl -q -w net.ipv6.conf.$INTERFACE.accept_ra=0 + ;; + *) + report_iproute "IP6 must be 'dhcp', 'dhcp-noaddr', 'stateless', 'static' or 'no'" + ;; + esac + case "$IP6" in dhcp*) if [[ -x /usr/sbin/dhclient ]]; then @@ -178,12 +196,6 @@ ethernet_up() { done fi ;; - ""|no) - sysctl -q -w net.ipv6.conf.$INTERFACE.accept_ra=0 - ;; - *) - report_iproute "IP6 must be 'dhcp', 'dhcp-noaddr', 'stateless', 'static' or 'no'" - ;; esac # Set hostname diff --git a/src/connections/wireless b/src/connections/wireless index 7ed5abe..b19afde 100644 --- a/src/connections/wireless +++ b/src/connections/wireless @@ -30,8 +30,8 @@ wireless_up() { if [ "$SECURITY" = "wpa-config" ]; then WPA_CONF="${WPA_CONF:-/etc/wpa_supplicant.conf}" # Use defined control path (FS#24949) - if grep "ctrl_interface=" "$WPA_CONF" &>/dev/null; then - WPA_CTRL_PATH=$(grep -m 1 "^ctrl_interface=" "$WPA_CONF" | tail -n 1 | cut -d= -f 2- | sed -r 's/DIR=(.*) +GROUP=.*/\1/') + if grep "^ *ctrl_interface=" "$WPA_CONF" &>/dev/null; then + WPA_CTRL_PATH=$(grep -m 1 "^ *ctrl_interface=" "$WPA_CONF" | tail -n 1 | cut -d= -f 2- | sed -r 's/DIR=(.*) +GROUP=.*/\1/') fi else WPA_CONF=$(make_wpa_config_file $INTERFACE) @@ -122,7 +122,6 @@ wireless_down() { # Handle wireless kill switches # Any reason why a hardware switch should be considered on interface down? if [[ "$RFKILL" == "soft" ]]; then - . "$SUBR_DIR/wireless" set_rf_state "$INTERFACE" disabled $RFKILL_NAME || return 1 fi } |