[netctl] Reach network.target before communicating

Message ID YRP2GZRkSPUzNaPk@Mindship-06.localdomain
State New
Headers show
Series [netctl] Reach network.target before communicating | expand

Commit Message

Jouke Witteveen Aug. 11, 2021, 4:08 p.m. UTC
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(-)

Patch

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.