Let the netctl profile service yield at the last moment before any
communication on the interface takes place. That way, we catch as many
problems as possible without suffering unpredictable delays.
This means network.target is reached earlier for wireless connections.
---
src/lib/connections/mobile_ppp | 3 +--
src/lib/connections/pppoe | 2 +-
src/lib/connections/wireless | 1 +
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/lib/connections/mobile_ppp b/src/lib/connections/mobile_ppp
index 9e07ef9..8ad7a15 100644
--- a/src/lib/connections/mobile_ppp
+++ b/src/lib/connections/mobile_ppp
@@ -19,8 +19,6 @@ mobile_ppp_up() {
rf_enable "$Interface" "$RFKill" || return 1
fi
- network_ready
-
mkdir -p "$options_dir"
if [[ -z $ChatScript ]]; then
ChatScript="$options_dir/modem.chat"
@@ -83,6 +81,7 @@ connect $(quote_word "/usr/sbin/chat -v -t15 -f $(quote_word "$ChatScript")")
${OptionsFile:+file $(quote_word "$OptionsFile")}
EOF
+ network_ready
if ! $PPPD file "$options_dir/options"; then
rm -r "$options_dir"
report_error "Could not establish a ppp connection for profile '$Profile'."
diff --git a/src/lib/connections/pppoe b/src/lib/connections/pppoe
index 35bccf7..aab6168 100644
--- a/src/lib/connections/pppoe
+++ b/src/lib/connections/pppoe
@@ -18,7 +18,6 @@ pppoe_up() {
report_error "Failed to bring interface '$Interface' up"
return 1
fi
- network_ready
mkdir -p "$(dirname "$options")"
cat >> "$options" << EOF
@@ -48,6 +47,7 @@ password $(quote_word "$Password")
${OptionsFile:+file $(quote_word "$OptionsFile")}
EOF
+ network_ready
if ! $PPPD file "$options"; then
rm "$options"
rmdir "$(dirname "$options")"
diff --git a/src/lib/connections/wireless b/src/lib/connections/wireless
index aeec060..5444baa 100644
--- a/src/lib/connections/wireless
+++ b/src/lib/connections/wireless
@@ -49,6 +49,7 @@ wireless_up() {
return 1
fi
+ network_ready
# Bring interface up after starting wpa_supplicant
# This is important since cards such as iwl3945 do not support
# mode switching when they are already up.
--
2.32.0