[PATCH v2 1/9] Check at runtime whether to start ModemManager



From: Didier Raboud <odyx debian org>

This makes NetworkManager use runtime detection to manage the
ModemManager lifecycle when not run by systemd. Under systemd, we expect
the ModemManager service to be started by systemd, under non-systemd, we
use the dbus activation feature to start ModemManager.

Closes: #770871

Gbp-Pq: Name Check-at-runtime-whether-to-start-ModemManager.patch
---
 src/devices/wwan/nm-modem-manager.c | 15 +++++----------
 1 file changed, 5 insertions(+), 10 deletions(-)

diff --git a/src/devices/wwan/nm-modem-manager.c b/src/devices/wwan/nm-modem-manager.c
index e26321b..9e9bc13 100644
--- a/src/devices/wwan/nm-modem-manager.c
+++ b/src/devices/wwan/nm-modem-manager.c
@@ -25,6 +25,7 @@
 #include <string.h>
 
 #include <libmm-glib.h>
+#include <systemd/sd-daemon.h>
 
 #include "nm-modem-manager.h"
 #include "nm-dbus-compat.h"
@@ -199,10 +200,9 @@ modem_manager_name_owner_changed (MMManager *modem_manager,
        if (!name_owner) {
                nm_log_info (LOGD_MB, "ModemManager disappeared from bus");
 
-#if !HAVE_SYSTEMD
                /* If not managed by systemd, schedule relaunch */
-               schedule_modem_manager_relaunch (self, 0);
-#endif
+               if (!sd_booted())
+                       schedule_modem_manager_relaunch (self, 0);
 
                return;
        }
@@ -223,8 +223,6 @@ modem_manager_name_owner_changed (MMManager *modem_manager,
         */
 }
 
-#if !HAVE_SYSTEMD
-
 static void
 modem_manager_poke_cb (GDBusConnection *connection,
                        GAsyncResult *res,
@@ -273,8 +271,6 @@ modem_manager_poke (NMModemManager *self)
                                g_object_ref (self)); /* user_data */
 }
 
-#endif /* HAVE_SYSTEMD */
-
 static void
 modem_manager_check_name_owner (NMModemManager *self)
 {
@@ -288,10 +284,9 @@ modem_manager_check_name_owner (NMModemManager *self)
                return;
        }
 
-#if !HAVE_SYSTEMD
        /* If the lifecycle is not managed by systemd, poke */
-       modem_manager_poke (self);
-#endif
+       if (!sd_booted())
+               modem_manager_poke (self);
 }
 
 static void
-- 
2.7.4



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]