summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRémy Oudompheng <remy@archlinux.org>2011-07-30 20:57:29 +0200
committerRémy Oudompheng <remy@archlinux.org>2011-07-30 20:57:29 +0200
commita1fc17107a833d0a55bca8b14d3244b7788adf86 (patch)
treeb5082b7eaeb2f6b8f784a586217099ada69196d9 /src
parent20603a6e06f16b82267fac9c8cd90d0113b36e92 (diff)
downloadnetctl-a1fc17107a833d0a55bca8b14d3244b7788adf86.tar.gz
netctl-a1fc17107a833d0a55bca8b14d3244b7788adf86.tar.xz
Use configured control path for wpa_supplicant (FS#24949)
Otherwise the wpa_cli calls may fail if the specified ctrl_interface directory differs from the default one. Signed-off-by: Rémy Oudompheng <remy@archlinux.org>
Diffstat (limited to 'src')
-rw-r--r--src/8021x4
-rw-r--r--src/connections/wireless5
2 files changed, 7 insertions, 2 deletions
diff --git a/src/8021x b/src/8021x
index 2b897b9..3de0a00 100644
--- a/src/8021x
+++ b/src/8021x
@@ -1,5 +1,3 @@
-WPA_CTRL_PATH=/run/wpa_supplicant
-
# Uses wpa_supplicant to check for association to a network
# wpa_check interface [timeout]
wpa_check()
@@ -7,6 +5,7 @@ wpa_check()
local timeout=0 INTERFACE="$1" TIMEOUT="${2:-15}" CONDITION="${3:-COMPLETED}"
# CONDITION is required as wired connections are ready at ASSOCIATED not COMPLETED FS#20150
+ report_debug wpa_cli -p "$WPA_CTRL_PATH" -i "$INTERFACE" status
while [[ $timeout -lt "$TIMEOUT" ]]; do
( # Sometimes wpa_supplicant isn't ready so silence errors for 2s only to avoid hiding real errors
if [[ $timeout -lt 2 ]]; then
@@ -97,6 +96,7 @@ wpa_supplicant_scan_and_find() {
# item = string to lookup
local INTERFACE="$1" FIELD="$2" ITEM="$3" RETRIES=5 try scan_ok
scan_ok=0
+ report_debug wpa_cli -p "$WPA_CTRL_PATH" -i "$INTERFACE" scan
wpa_cli -p "$WPA_CTRL_PATH" -i "$INTERFACE" scan &> /dev/null
for ((try=0; try < $RETRIES; try++)); do
local found
diff --git a/src/connections/wireless b/src/connections/wireless
index 7f95c6f..e38a14f 100644
--- a/src/connections/wireless
+++ b/src/connections/wireless
@@ -26,8 +26,13 @@ wireless_up() {
stop_wpa "$INTERFACE"
# Start wpa_supplicant
+ WPA_CTRL_PATH=/run/wpa_supplicant
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 "ctrl_interface=" "$WPA_CONF" | cut -d= -f 2- | sed -r 's/DIR=(.*) +GROUP=.*/\1/')
+ fi
else
WPA_CONF=$(make_wpa_config_file $INTERFACE)
fi