diff options
| author | Sebastien Bacher <seb128@ubuntu.com> | 2021-07-05 20:35:03 +0200 |
|---|---|---|
| committer | Sebastien Bacher <seb128@ubuntu.com> | 2021-07-05 20:35:03 +0200 |
| commit | 35779c6675728fa6f0fd0a21cefb904408509c23 (patch) | |
| tree | 553e7239e0ba182b4f9b29b1e7a9d66a595d08bc /debian/patches | |
| parent | d92aa7f298fe84d4cf686c5ad64b73438e00d377 (diff) | |
New upstream version 1.32.2
Diffstat (limited to 'debian/patches')
| -rw-r--r-- | debian/patches/Don-t-setup-Sleep-Monitor-if-not-booted-with-systemd.patch | 40 | ||||
| -rw-r--r-- | debian/patches/Force-online-state-with-unmanaged-devices.patch | 188 | ||||
| -rw-r--r-- | debian/patches/series | 2 |
3 files changed, 0 insertions, 230 deletions
diff --git a/debian/patches/Don-t-setup-Sleep-Monitor-if-not-booted-with-systemd.patch b/debian/patches/Don-t-setup-Sleep-Monitor-if-not-booted-with-systemd.patch deleted file mode 100644 index 7252cb85..00000000 --- a/debian/patches/Don-t-setup-Sleep-Monitor-if-not-booted-with-systemd.patch +++ /dev/null @@ -1,40 +0,0 @@ -From: Michael Biebl <biebl@debian.org> -Date: Sat, 12 Apr 2014 12:38:09 +0200 -Subject: Don't setup Sleep Monitor if not booted with systemd - -NetworkManager uses systemd for suspend/resume support. It listens for -the PrepareForSleep and Resume D-Bus signal sent by logind/systemd and -deactivates the interfaces on sleep and reactivates them on resume. -With a standalone logind we don't get a Resume signal and -NetworkManager remains in sleep mode where the devices are unmanaged. -As a workaround, skip the Sleep Monitor setup if not booted with -systemd. - -Closes: #742933 ---- - src/nm-sleep-monitor.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/src/nm-sleep-monitor.c b/src/nm-sleep-monitor.c -index c97f6f7..5ea0a64 100644 ---- a/src/nm-sleep-monitor.c -+++ b/src/nm-sleep-monitor.c -@@ -22,6 +22,7 @@ - - #include <sys/stat.h> - #include <gio/gunixfdlist.h> -+#include <systemd/sd-daemon.h> - - #include "nm-core-internal.h" - #include "NetworkManagerUtils.h" -@@ -341,6 +342,10 @@ on_proxy_acquired (GObject *object, - static void - nm_sleep_monitor_init (NMSleepMonitor *self) - { -+ if (!sd_booted()) { -+ nm_log_warn (LOGD_SUSPEND, "Skipping Sleep Monitor setup, system not booted with systemd"); -+ return; -+ } - self->inhibit_fd = -1; - self->cancellable = g_cancellable_new (); - g_dbus_proxy_new_for_bus (G_BUS_TYPE_SYSTEM, diff --git a/debian/patches/Force-online-state-with-unmanaged-devices.patch b/debian/patches/Force-online-state-with-unmanaged-devices.patch deleted file mode 100644 index d5ea3a2a..00000000 --- a/debian/patches/Force-online-state-with-unmanaged-devices.patch +++ /dev/null @@ -1,188 +0,0 @@ -From: Michael Biebl <biebl@debian.org> -Date: Wed, 2 Apr 2014 03:15:53 +0200 -Subject: Force online state with unmanaged devices - -If we have unmanaged devices in /e/n/i, monitor the ifupdown state file -and in case we find active interfaces besides lo, forcefully set the -online state to CONNECTED. - -Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=512286 ---- - src/nm-manager.c | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 115 insertions(+) - -diff --git a/src/nm-manager.c b/src/nm-manager.c -index 78f3722..c49e94a 100644 ---- a/src/nm-manager.c -+++ b/src/nm-manager.c -@@ -60,6 +60,8 @@ - #include "nm-dispatcher.h" - #include "NetworkManagerUtils.h" - -+#define IFUPDOWN_STATE_FILE "/run/network/ifstate" -+ - /*****************************************************************************/ - - typedef struct { -@@ -198,6 +200,10 @@ typedef struct { - GFileMonitor *fw_monitor; - guint fw_changed_id; - -+ /* ifupdown state file monitor */ -+ GFileMonitor *ifstate_monitor; -+ gboolean ifstate_force_online; -+ - guint timestamp_update_id; - - guint devices_inited_id; -@@ -1436,6 +1442,27 @@ find_best_device_state (NMManager *manager) - return best_state; - } - -+static NMState -+find_unmanaged_state (NMManager *self, NMState current_state) -+{ -+ NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (self); -+ NMState new_state = current_state; -+ NMDevice *device; -+ -+ c_list_for_each_entry (device, &priv->devices_lst_head, devices_lst) { -+ NMDeviceState state = nm_device_get_state (device); -+ -+ if (state == NM_DEVICE_STATE_UNMANAGED) { -+ const char *iface = nm_device_get_ip_iface (device); -+ if (priv->ifstate_force_online) { -+ new_state = NM_STATE_CONNECTED_GLOBAL; -+ nm_log_dbg (LOGD_CORE, "Unmanaged device found: %s; state CONNECTED forced.", iface); -+ } -+ } -+ } -+ return new_state; -+} -+ - static void - nm_manager_update_metered (NMManager *self) - { -@@ -1482,6 +1509,9 @@ nm_manager_update_state (NMManager *self) - else - new_state = find_best_device_state (self); - -+ if (new_state != NM_STATE_CONNECTED_GLOBAL) -+ new_state = find_unmanaged_state (self, new_state); -+ - if ( new_state >= NM_STATE_CONNECTED_LOCAL - && priv->connectivity_state == NM_CONNECTIVITY_FULL) { - new_state = NM_STATE_CONNECTED_GLOBAL; -@@ -6485,6 +6515,62 @@ impl_manager_check_connectivity (NMDBusObject *obj, - nm_auth_chain_add_call (chain, NM_AUTH_PERMISSION_NETWORK_CONTROL, TRUE); - } - -+static void -+check_ifstate_file (gpointer user_data) -+{ -+ NMManager *self = NM_MANAGER (user_data); -+ NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (self); -+ GIOChannel *channel; -+ gchar *line; -+ gboolean online = FALSE; -+ -+ channel = g_io_channel_new_file (IFUPDOWN_STATE_FILE, "r", NULL); -+ if (!channel) { -+ nm_log_warn (LOGD_CORE, "Error: failed to open %s", IFUPDOWN_STATE_FILE); -+ return; -+ } -+ -+ while (g_io_channel_read_line (channel, &line, NULL, NULL, NULL) -+ != G_IO_STATUS_EOF && !online) { -+ g_strstrip (line); -+ if (strlen (line) > 0 && g_strcmp0 (line, "lo=lo") != 0) { -+ online = TRUE; -+ } -+ g_free (line); -+ } -+ -+ g_io_channel_shutdown (channel, FALSE, NULL); -+ g_io_channel_unref (channel); -+ -+ if (priv->ifstate_force_online != online) { -+ priv->ifstate_force_online = online; -+ nm_manager_update_state (self); -+ } -+} -+ -+static void -+ifstate_file_changed (GFileMonitor *monitor, -+ GFile *file, -+ GFile *other_file, -+ GFileMonitorEvent event_type, -+ gpointer user_data) -+{ -+ switch (event_type) { -+// case G_FILE_MONITOR_EVENT_CREATED: -+//#if GLIB_CHECK_VERSION(2,23,4) -+// case G_FILE_MONITOR_EVENT_MOVED: -+//#endif -+// case G_FILE_MONITOR_EVENT_ATTRIBUTE_CHANGED: -+ case G_FILE_MONITOR_EVENT_CHANGED: -+ case G_FILE_MONITOR_EVENT_CHANGES_DONE_HINT: -+ nm_log_dbg (LOGD_CORE, "ifupdown state file %s was changed", IFUPDOWN_STATE_FILE); -+ check_ifstate_file (user_data); -+ break; -+ default: -+ break; -+ } -+} -+ - static void - start_factory (NMDeviceFactory *factory, gpointer user_data) - { -@@ -6658,6 +6744,9 @@ nm_manager_start (NMManager *self, GError **error) - nm_clear_g_source (&priv->devices_inited_id); - priv->devices_inited_id = g_idle_add_full (G_PRIORITY_LOW + 10, devices_inited_cb, self, NULL); - -+ /* Trigger ifupdown state file check */ -+ check_ifstate_file (self); -+ - return TRUE; - } - -@@ -7506,6 +7595,22 @@ nm_manager_init (NMManager *self) - KERNEL_FIRMWARE_DIR); - } - -+ /* Monitor the ifupdown state file */ -+ file = g_file_new_for_path (IFUPDOWN_STATE_FILE); -+ priv->ifstate_monitor = g_file_monitor_file (file, G_FILE_MONITOR_NONE, NULL, NULL); -+ g_object_unref (file); -+ -+ if (priv->ifstate_monitor) { -+ g_signal_connect (priv->ifstate_monitor, "changed", -+ G_CALLBACK (ifstate_file_changed), -+ self); -+ nm_log_info (LOGD_CORE, "monitoring ifupdown state file '%s'.", -+ IFUPDOWN_STATE_FILE); -+ } else { -+ nm_log_warn (LOGD_CORE, "failed to monitor ifupdown state file '%s'.", -+ IFUPDOWN_STATE_FILE); -+ } -+ - /* Update timestamps in active connections */ - priv->timestamp_update_id = g_timeout_add_seconds (300, (GSourceFunc) periodic_update_active_connection_timestamps, self); - -@@ -7788,6 +7893,16 @@ dispose (GObject *object) - g_clear_object (&priv->fw_monitor); - } - -+ if (priv->ifstate_monitor) { -+ g_signal_handlers_disconnect_by_func (priv->ifstate_monitor, ifstate_file_changed, self); -+ -+ if (priv->ifstate_force_online) -+ g_source_remove (priv->ifstate_force_online); -+ -+ g_file_monitor_cancel (priv->ifstate_monitor); -+ g_clear_object (&priv->ifstate_monitor); -+ } -+ - if (priv->rfkill_mgr) { - g_signal_handlers_disconnect_by_func (priv->rfkill_mgr, rfkill_manager_rfkill_changed_cb, self); - g_clear_object (&priv->rfkill_mgr); diff --git a/debian/patches/series b/debian/patches/series deleted file mode 100644 index 9a20acf2..00000000 --- a/debian/patches/series +++ /dev/null @@ -1,2 +0,0 @@ -Force-online-state-with-unmanaged-devices.patch -Don-t-setup-Sleep-Monitor-if-not-booted-with-systemd.patch |