Rebase patches
Michael Biebl
8 years ago
0 | 0 | network-manager (1.1.91-1) UNRELEASED; urgency=medium |
1 | 1 | |
2 | 2 | * New upstream release (1.2 beta2). |
3 | * Rebase patches. | |
3 | 4 | |
4 | 5 | -- Michael Biebl <biebl@debian.org> Tue, 01 Mar 2016 16:56:21 +0100 |
5 | 6 |
12 | 12 | 1 file changed, 5 insertions(+), 10 deletions(-) |
13 | 13 | |
14 | 14 | diff --git a/src/devices/wwan/nm-modem-manager.c b/src/devices/wwan/nm-modem-manager.c |
15 | index c28d86a..35d8980 100644 | |
15 | index 79082c4..937f731 100644 | |
16 | 16 | --- a/src/devices/wwan/nm-modem-manager.c |
17 | 17 | +++ b/src/devices/wwan/nm-modem-manager.c |
18 | 18 | @@ -25,6 +25,7 @@ |
22 | 22 | +#include <systemd/sd-daemon.h> |
23 | 23 | |
24 | 24 | #include "nm-modem-manager.h" |
25 | #include "nm-default.h" | |
26 | @@ -200,10 +201,9 @@ modem_manager_name_owner_changed (MMManager *modem_manager, | |
25 | #include "nm-dbus-compat.h" | |
26 | @@ -199,10 +200,9 @@ modem_manager_name_owner_changed (MMManager *modem_manager, | |
27 | 27 | if (!name_owner) { |
28 | 28 | nm_log_info (LOGD_MB, "ModemManager disappeared from bus"); |
29 | 29 | |
36 | 36 | |
37 | 37 | return; |
38 | 38 | } |
39 | @@ -224,8 +224,6 @@ modem_manager_name_owner_changed (MMManager *modem_manager, | |
39 | @@ -223,8 +223,6 @@ modem_manager_name_owner_changed (MMManager *modem_manager, | |
40 | 40 | */ |
41 | 41 | } |
42 | 42 | |
45 | 45 | static void |
46 | 46 | modem_manager_poke_cb (GDBusConnection *connection, |
47 | 47 | GAsyncResult *res, |
48 | @@ -274,8 +272,6 @@ modem_manager_poke (NMModemManager *self) | |
48 | @@ -273,8 +271,6 @@ modem_manager_poke (NMModemManager *self) | |
49 | 49 | g_object_ref (self)); /* user_data */ |
50 | 50 | } |
51 | 51 | |
54 | 54 | static void |
55 | 55 | modem_manager_check_name_owner (NMModemManager *self) |
56 | 56 | { |
57 | @@ -289,10 +285,9 @@ modem_manager_check_name_owner (NMModemManager *self) | |
57 | @@ -288,10 +284,9 @@ modem_manager_check_name_owner (NMModemManager *self) | |
58 | 58 | return; |
59 | 59 | } |
60 | 60 |
19 | 19 | 1 file changed, 2 deletions(-) |
20 | 20 | |
21 | 21 | diff --git a/data/NetworkManager.service.in b/data/NetworkManager.service.in |
22 | index 6690f5a..10b3de9 100644 | |
22 | index 7946ac1..a974432 100644 | |
23 | 23 | --- a/data/NetworkManager.service.in |
24 | 24 | +++ b/data/NetworkManager.service.in |
25 | @@ -1,7 +1,5 @@ | |
25 | @@ -1,8 +1,6 @@ | |
26 | 26 | [Unit] |
27 | 27 | Description=Network Manager |
28 | 28 | -Wants=network.target |
29 | After=network-pre.target dbus.service | |
29 | 30 | -Before=network.target @DISTRO_NETWORK_SERVICE@ |
30 | 31 | |
31 | 32 | [Service] |
27 | 27 | install -d $(DESTDIR)$(systemdsystemunitdir)/network-online.target.wants |
28 | 28 | ln -sf $(systemdsystemunitdir)/NetworkManager-wait-online.service $(DESTDIR)$(systemdsystemunitdir)/network-online.target.wants |
29 | 29 | diff --git a/data/NetworkManager.service.in b/data/NetworkManager.service.in |
30 | index 10b3de9..90c0664 100644 | |
30 | index a974432..5a752b8 100644 | |
31 | 31 | --- a/data/NetworkManager.service.in |
32 | 32 | +++ b/data/NetworkManager.service.in |
33 | @@ -15,6 +15,5 @@ ProtectHome=read-only | |
33 | @@ -16,6 +16,5 @@ ProtectHome=read-only | |
34 | 34 | |
35 | 35 | [Install] |
36 | 36 | WantedBy=multi-user.target |
17 | 17 | 3 files changed, 9 insertions(+), 1 deletion(-) |
18 | 18 | |
19 | 19 | diff --git a/configure.ac b/configure.ac |
20 | index 6da6415..b550ab1 100644 | |
20 | index 0f270ce..46da9b8 100644 | |
21 | 21 | --- a/configure.ac |
22 | 22 | +++ b/configure.ac |
23 | 23 | @@ -467,8 +467,9 @@ fi |
32 | 32 | ;; |
33 | 33 | consolekit) |
34 | 34 | diff --git a/src/Makefile.am b/src/Makefile.am |
35 | index 7e85831..ca35e1d 100644 | |
35 | index eea646a..603811b 100644 | |
36 | 36 | --- a/src/Makefile.am |
37 | 37 | +++ b/src/Makefile.am |
38 | @@ -437,6 +437,7 @@ AM_CPPFLAGS += \ | |
38 | @@ -475,6 +475,7 @@ AM_CPPFLAGS += \ | |
39 | 39 | $(SELINUX_CFLAGS) \ |
40 | 40 | $(LIBAUDIT_CFLAGS) \ |
41 | 41 | $(SYSTEMD_LOGIN_CFLAGS) \ |
43 | 43 | $(SYSTEMD_JOURNAL_CFLAGS) \ |
44 | 44 | $(SYSTEMD_NM_CFLAGS_PATHS) \ |
45 | 45 | \ |
46 | @@ -470,6 +471,7 @@ libNetworkManager_la_LIBADD = \ | |
46 | @@ -508,6 +509,7 @@ libNetworkManager_la_LIBADD = \ | |
47 | 47 | $(GUDEV_LIBS) \ |
48 | 48 | $(LIBNL_LIBS) \ |
49 | 49 | $(SYSTEMD_LOGIN_LIBS) \ |
52 | 52 | $(LIBNDP_LIBS) \ |
53 | 53 | $(LIBDL) \ |
54 | 54 | diff --git a/src/nm-sleep-monitor-systemd.c b/src/nm-sleep-monitor-systemd.c |
55 | index 12db56b..f1baa4e 100644 | |
55 | index 064a703..d42c0fe 100644 | |
56 | 56 | --- a/src/nm-sleep-monitor-systemd.c |
57 | 57 | +++ b/src/nm-sleep-monitor-systemd.c |
58 | 58 | @@ -23,6 +23,7 @@ |
61 | 61 | #include <gio/gunixfdlist.h> |
62 | 62 | +#include <systemd/sd-daemon.h> |
63 | 63 | |
64 | #include "nm-default.h" | |
65 | 64 | #include "nm-core-internal.h" |
66 | @@ -204,6 +205,10 @@ on_proxy_acquired (GObject *object, | |
65 | #include "NetworkManagerUtils.h" | |
66 | @@ -203,6 +204,10 @@ on_proxy_acquired (GObject *object, | |
67 | 67 | static void |
68 | 68 | nm_sleep_monitor_init (NMSleepMonitor *self) |
69 | 69 | { |
8 | 8 | 1 file changed, 1 insertion(+), 1 deletion(-) |
9 | 9 | |
10 | 10 | diff --git a/src/settings/plugins/ibft/plugin.c b/src/settings/plugins/ibft/plugin.c |
11 | index 555725d..cc1d32e 100644 | |
11 | index 6f9b8c8..ce89599 100644 | |
12 | 12 | --- a/src/settings/plugins/ibft/plugin.c |
13 | 13 | +++ b/src/settings/plugins/ibft/plugin.c |
14 | @@ -61,7 +61,7 @@ read_connections (SettingsPluginIbft *self) | |
14 | @@ -60,7 +60,7 @@ read_connections (SettingsPluginIbft *self) | |
15 | 15 | GError *error = NULL; |
16 | 16 | NMIbftConnection *connection; |
17 | 17 |
11 | 11 | 1 file changed, 120 insertions(+) |
12 | 12 | |
13 | 13 | diff --git a/src/nm-manager.c b/src/nm-manager.c |
14 | index ffc89ec..ba0ff24 100644 | |
14 | index 7f414e8..8ce6c0b 100644 | |
15 | 15 | --- a/src/nm-manager.c |
16 | 16 | +++ b/src/nm-manager.c |
17 | @@ -58,6 +58,8 @@ | |
17 | @@ -57,6 +57,8 @@ | |
18 | 18 | #include "nmdbus-manager.h" |
19 | 19 | #include "nmdbus-device.h" |
20 | 20 | |
23 | 23 | static gboolean add_device (NMManager *self, NMDevice *device, GError **error); |
24 | 24 | |
25 | 25 | static NMActiveConnection *_new_active_connection (NMManager *self, |
26 | @@ -138,6 +140,10 @@ typedef struct { | |
26 | @@ -137,6 +139,10 @@ typedef struct { | |
27 | 27 | GFileMonitor *fw_monitor; |
28 | 28 | guint fw_changed_id; |
29 | 29 | |
34 | 34 | guint timestamp_update_id; |
35 | 35 | |
36 | 36 | gboolean startup; |
37 | @@ -684,6 +690,29 @@ find_best_device_state (NMManager *manager) | |
37 | @@ -683,6 +689,29 @@ find_best_device_state (NMManager *manager) | |
38 | 38 | return best_state; |
39 | 39 | } |
40 | 40 | |
64 | 64 | static void |
65 | 65 | nm_manager_update_metered (NMManager *manager) |
66 | 66 | { |
67 | @@ -725,6 +754,9 @@ nm_manager_update_state (NMManager *manager) | |
67 | @@ -724,6 +753,9 @@ nm_manager_update_state (NMManager *manager) | |
68 | 68 | |
69 | 69 | nm_connectivity_set_online (priv->connectivity, new_state >= NM_STATE_CONNECTED_LOCAL); |
70 | 70 | |
74 | 74 | if (new_state == NM_STATE_CONNECTED_SITE) { |
75 | 75 | nm_connectivity_check_async (priv->connectivity, |
76 | 76 | checked_connectivity, |
77 | @@ -4347,6 +4379,65 @@ impl_manager_check_connectivity (NMManager *self, | |
77 | @@ -4336,6 +4368,65 @@ impl_manager_check_connectivity (NMManager *self, | |
78 | 78 | } |
79 | 79 | |
80 | 80 | static void |
140 | 140 | start_factory (NMDeviceFactory *factory, gpointer user_data) |
141 | 141 | { |
142 | 142 | nm_device_factory_start (factory); |
143 | @@ -4417,6 +4508,9 @@ nm_manager_start (NMManager *self, GError **error) | |
143 | @@ -4406,6 +4497,9 @@ nm_manager_start (NMManager *self, GError **error) | |
144 | 144 | |
145 | 145 | check_if_startup_complete (self); |
146 | 146 | |
150 | 150 | return TRUE; |
151 | 151 | } |
152 | 152 | |
153 | @@ -5215,6 +5309,22 @@ nm_manager_init (NMManager *manager) | |
153 | @@ -5207,6 +5301,22 @@ nm_manager_init (NMManager *manager) | |
154 | 154 | KERNEL_FIRMWARE_DIR); |
155 | 155 | } |
156 | 156 | |
173 | 173 | /* Update timestamps in active connections */ |
174 | 174 | priv->timestamp_update_id = g_timeout_add_seconds (300, (GSourceFunc) periodic_update_active_connection_timestamps, manager); |
175 | 175 | |
176 | @@ -5457,6 +5567,16 @@ dispose (GObject *object) | |
176 | @@ -5449,6 +5559,16 @@ dispose (GObject *object) | |
177 | 177 | g_clear_object (&priv->fw_monitor); |
178 | 178 | } |
179 | 179 |
0 | From: Michael Biebl <biebl@debian.org> | |
1 | Date: Wed, 27 Jan 2016 22:14:09 +0100 | |
2 | Subject: Use bash explicitly when running the tests | |
3 | ||
4 | The trap handling in dash seems to have issues [Bug-Debian]. | |
5 | So explicitly use bash when running the tests. | |
6 | ||
7 | Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=390433 | |
8 | Bug: https://bugzilla.gnome.org/show_bug.cgi?id=761146 | |
9 | --- | |
10 | src/tests/test-general-with-expect.c | 10 +++++----- | |
11 | 1 file changed, 5 insertions(+), 5 deletions(-) | |
12 | ||
13 | diff --git a/src/tests/test-general-with-expect.c b/src/tests/test-general-with-expect.c | |
14 | index c6abdcc..a5ef9e3 100644 | |
15 | --- a/src/tests/test-general-with-expect.c | |
16 | +++ b/src/tests/test-general-with-expect.c | |
17 | @@ -225,33 +225,33 @@ test_nm_utils_kill_child (void) | |
18 | int err; | |
19 | GLogLevelFlags fatal_mask; | |
20 | char *argv_watchdog[] = { | |
21 | - "sh", | |
22 | + "bash", | |
23 | "-c", | |
24 | "sleep 4; " | |
25 | "kill -KILL 0; #watchdog for #" TEST_TOKEN, | |
26 | NULL, | |
27 | }; | |
28 | char *argv1[] = { | |
29 | - "sh", | |
30 | + "bash", | |
31 | "-c", | |
32 | "trap \"sleep 0.3; exit 10\" EXIT; " | |
33 | "sleep 100000; exit $? #" TEST_TOKEN, | |
34 | NULL, | |
35 | }; | |
36 | char *argv2[] = { | |
37 | - "sh", | |
38 | + "bash", | |
39 | "-c", | |
40 | "exit 47; #" TEST_TOKEN, | |
41 | NULL, | |
42 | }; | |
43 | char *argv3[] = { | |
44 | - "sh", | |
45 | + "bash", | |
46 | "-c", | |
47 | "trap \"exit 47\" TERM; while true; do :; done; #" TEST_TOKEN, | |
48 | NULL, | |
49 | }; | |
50 | char *argv4[] = { | |
51 | - "sh", | |
52 | + "bash", | |
53 | "-c", | |
54 | "trap \"while true; do :; done\" TERM; while true; do :; done; #" TEST_TOKEN, | |
55 | NULL, |
0 | From: Michael Biebl <biebl@debian.org> | |
1 | Date: Mon, 9 Feb 2015 01:12:16 +0100 | |
2 | Subject: build: install nm-settings-ifcfg-rh.5 man page conditionally | |
3 | ||
4 | Only install nm-settings-ifcfg-rh.5 man page if the ifcfg-rh | |
5 | configuration plugin has been enabled. | |
6 | ||
7 | Bug: https://bugzilla.gnome.org/show_bug.cgi?id=759823 | |
8 | --- | |
9 | man/Makefile.am | 6 +++++- | |
10 | 1 file changed, 5 insertions(+), 1 deletion(-) | |
11 | ||
12 | diff --git a/man/Makefile.am b/man/Makefile.am | |
13 | index 85b6f3a..45009fc 100644 | |
14 | --- a/man/Makefile.am | |
15 | +++ b/man/Makefile.am | |
16 | @@ -78,8 +78,12 @@ docbook_generated_man_pages = \ | |
17 | ||
18 | docbook_autogenerated_man_pages = \ | |
19 | nm-settings.5 \ | |
20 | - nm-settings-keyfile.5 \ | |
21 | + nm-settings-keyfile.5 | |
22 | + | |
23 | +if CONFIG_PLUGIN_IFCFG_RH | |
24 | +docbook_autogenerated_man_pages += \ | |
25 | nm-settings-ifcfg-rh.5 | |
26 | +endif | |
27 | ||
28 | EXTRA_DIST += \ | |
29 | nm-settings.xml \ |
0 | From: Dan Williams <dcbw@redhat.com> | |
1 | Date: Wed, 20 Jan 2016 13:52:59 -0600 | |
2 | Subject: dns: clean up error paths in dns-manager | |
3 | ||
4 | Specifically for resolvconf, if the write succeeded, but the pclose() | |
5 | failed error would be left NULL and SR_ERROR would be returned, which | |
6 | caused a crash in nm_dns_manager_end_updates(). | |
7 | ||
8 | (cherry-picked from commit af189b3295847cf48bc7616ec3bfc4192458608c) | |
9 | --- | |
10 | src/dns-manager/nm-dns-manager.c | 152 +++++++++++++++++++-------------------- | |
11 | 1 file changed, 76 insertions(+), 76 deletions(-) | |
12 | ||
13 | diff --git a/src/dns-manager/nm-dns-manager.c b/src/dns-manager/nm-dns-manager.c | |
14 | index 01e8bf1..33bef65 100644 | |
15 | --- a/src/dns-manager/nm-dns-manager.c | |
16 | +++ b/src/dns-manager/nm-dns-manager.c | |
17 | @@ -357,7 +357,6 @@ dispatch_netconfig (NMDnsManager *self, | |
18 | ||
19 | if (searches) { | |
20 | str = g_strjoinv (" ", searches); | |
21 | - | |
22 | write_to_netconfig (self, fd, "DNSSEARCH", str); | |
23 | g_free (str); | |
24 | } | |
25 | @@ -405,10 +404,9 @@ write_resolv_conf (FILE *f, | |
26 | char **options, | |
27 | GError **error) | |
28 | { | |
29 | - char *searches_str = NULL; | |
30 | - char *nameservers_str = NULL; | |
31 | - char *options_str = NULL; | |
32 | - gboolean retval = FALSE; | |
33 | + gs_free char *searches_str = NULL; | |
34 | + gs_free char *nameservers_str = NULL; | |
35 | + gs_free char *options_str = NULL; | |
36 | char *tmp_str; | |
37 | GString *str; | |
38 | int i; | |
39 | @@ -425,11 +423,10 @@ write_resolv_conf (FILE *f, | |
40 | g_free (tmp_str); | |
41 | } | |
42 | ||
43 | - str = g_string_new (""); | |
44 | - | |
45 | if (nameservers) { | |
46 | int num = g_strv_length (nameservers); | |
47 | ||
48 | + str = g_string_new (""); | |
49 | for (i = 0; i < num; i++) { | |
50 | if (i == 3) { | |
51 | g_string_append (str, "# "); | |
52 | @@ -443,28 +440,22 @@ write_resolv_conf (FILE *f, | |
53 | g_string_append (str, nameservers[i]); | |
54 | g_string_append_c (str, '\n'); | |
55 | } | |
56 | + nameservers_str = g_string_free (str, FALSE); | |
57 | } | |
58 | ||
59 | - nameservers_str = g_string_free (str, FALSE); | |
60 | - | |
61 | if (fprintf (f, "# Generated by NetworkManager\n%s%s%s", | |
62 | searches_str ? searches_str : "", | |
63 | - nameservers_str, | |
64 | - options_str ? options_str : "") > 0) | |
65 | - retval = TRUE; | |
66 | - else { | |
67 | + nameservers_str ? nameservers_str : "", | |
68 | + options_str ? options_str : "") < 0) { | |
69 | g_set_error (error, | |
70 | NM_MANAGER_ERROR, | |
71 | NM_MANAGER_ERROR_FAILED, | |
72 | "Could not write " _PATH_RESCONF ": %s\n", | |
73 | g_strerror (errno)); | |
74 | + return FALSE; | |
75 | } | |
76 | ||
77 | - g_free (searches_str); | |
78 | - g_free (nameservers_str); | |
79 | - g_free (options_str); | |
80 | - | |
81 | - return retval; | |
82 | + return TRUE; | |
83 | } | |
84 | ||
85 | static SpawnResult | |
86 | @@ -474,9 +465,9 @@ dispatch_resolvconf (NMDnsManager *self, | |
87 | char **options, | |
88 | GError **error) | |
89 | { | |
90 | - char *cmd; | |
91 | + gs_free char *cmd = NULL; | |
92 | FILE *f; | |
93 | - gboolean retval = FALSE; | |
94 | + gboolean success = FALSE; | |
95 | int errnosv, err; | |
96 | ||
97 | if (!g_file_test (RESOLVCONF_PATH, G_FILE_TEST_IS_EXECUTABLE)) { | |
98 | @@ -487,39 +478,46 @@ dispatch_resolvconf (NMDnsManager *self, | |
99 | return SR_NOTFOUND; | |
100 | } | |
101 | ||
102 | - if (searches || nameservers) { | |
103 | - cmd = g_strconcat (RESOLVCONF_PATH, " -a ", "NetworkManager", NULL); | |
104 | - _LOGI ("Writing DNS information to %s", RESOLVCONF_PATH); | |
105 | - if ((f = popen (cmd, "w")) == NULL) | |
106 | - g_set_error (error, | |
107 | - NM_MANAGER_ERROR, | |
108 | - NM_MANAGER_ERROR_FAILED, | |
109 | - "Could not write to %s: %s\n", | |
110 | - RESOLVCONF_PATH, | |
111 | - g_strerror (errno)); | |
112 | - else { | |
113 | - retval = write_resolv_conf (f, searches, nameservers, options, error); | |
114 | - err = pclose (f); | |
115 | - if (err < 0) { | |
116 | - errnosv = errno; | |
117 | - g_set_error (error, G_IO_ERROR, g_io_error_from_errno (errnosv), | |
118 | - "Failed to close pipe to resolvconf: %d", errnosv); | |
119 | - retval = FALSE; | |
120 | - } else if (err > 0) { | |
121 | - _LOGW ("resolvconf failed with status %d", err); | |
122 | - retval = FALSE; | |
123 | - } | |
124 | - } | |
125 | - } else { | |
126 | - cmd = g_strconcat (RESOLVCONF_PATH, " -d ", "NetworkManager", NULL); | |
127 | + if (!searches && !nameservers) { | |
128 | _LOGI ("Removing DNS information from %s", RESOLVCONF_PATH); | |
129 | - if (nm_spawn_process (cmd, error) == 0) | |
130 | - retval = TRUE; | |
131 | + | |
132 | + cmd = g_strconcat (RESOLVCONF_PATH, " -d ", "NetworkManager", NULL); | |
133 | + if (nm_spawn_process (cmd, error) != 0) | |
134 | + return SR_ERROR; | |
135 | + | |
136 | + return SR_SUCCESS; | |
137 | } | |
138 | ||
139 | - g_free (cmd); | |
140 | + _LOGI ("Writing DNS information to %s", RESOLVCONF_PATH); | |
141 | ||
142 | - return retval ? SR_SUCCESS : SR_ERROR; | |
143 | + cmd = g_strconcat (RESOLVCONF_PATH, " -a ", "NetworkManager", NULL); | |
144 | + if ((f = popen (cmd, "w")) == NULL) { | |
145 | + g_set_error (error, | |
146 | + NM_MANAGER_ERROR, | |
147 | + NM_MANAGER_ERROR_FAILED, | |
148 | + "Could not write to %s: %s\n", | |
149 | + RESOLVCONF_PATH, | |
150 | + g_strerror (errno)); | |
151 | + return SR_ERROR; | |
152 | + } | |
153 | + | |
154 | + success = write_resolv_conf (f, searches, nameservers, options, error); | |
155 | + err = pclose (f); | |
156 | + if (err < 0) { | |
157 | + errnosv = errno; | |
158 | + g_clear_error (error); | |
159 | + g_set_error (error, G_IO_ERROR, g_io_error_from_errno (errnosv), | |
160 | + "Failed to close pipe to resolvconf: %d", errnosv); | |
161 | + return SR_ERROR; | |
162 | + } else if (err > 0) { | |
163 | + _LOGW ("resolvconf failed with status %d", err); | |
164 | + g_clear_error (error); | |
165 | + g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED, | |
166 | + "resolvconf failed with status %d", err); | |
167 | + return SR_ERROR; | |
168 | + } | |
169 | + | |
170 | + return success ? SR_SUCCESS : SR_ERROR; | |
171 | } | |
172 | ||
173 | #define MY_RESOLV_CONF NMRUNDIR "/resolv.conf" | |
174 | @@ -536,7 +534,7 @@ update_resolv_conf (NMDnsManager *self, | |
175 | { | |
176 | FILE *f; | |
177 | struct stat st; | |
178 | - gboolean ret; | |
179 | + gboolean success; | |
180 | ||
181 | /* If we are not managing /etc/resolv.conf and it points to | |
182 | * MY_RESOLV_CONF, don't write the private DNS configuration to | |
183 | @@ -544,15 +542,12 @@ update_resolv_conf (NMDnsManager *self, | |
184 | * some external application. | |
185 | */ | |
186 | if (!install_etc) { | |
187 | - char *path = g_file_read_link (_PATH_RESCONF, NULL); | |
188 | - gboolean ours = !g_strcmp0 (path, MY_RESOLV_CONF); | |
189 | - | |
190 | - g_free (path); | |
191 | + gs_free char *path = g_file_read_link (_PATH_RESCONF, NULL); | |
192 | ||
193 | - if (ours) { | |
194 | + if (g_strcmp0 (path, MY_RESOLV_CONF) == 0) { | |
195 | _LOGD ("not updating " MY_RESOLV_CONF | |
196 | " since it points to " _PATH_RESCONF); | |
197 | - return SR_ERROR; | |
198 | + return SR_SUCCESS; | |
199 | } | |
200 | } | |
201 | ||
202 | @@ -566,10 +561,10 @@ update_resolv_conf (NMDnsManager *self, | |
203 | return SR_ERROR; | |
204 | } | |
205 | ||
206 | - ret = write_resolv_conf (f, searches, nameservers, options, error); | |
207 | + success = write_resolv_conf (f, searches, nameservers, options, error); | |
208 | ||
209 | if (fclose (f) < 0) { | |
210 | - if (ret) { | |
211 | + if (success) { | |
212 | /* only set an error here if write_resolv_conf() was successful, | |
213 | * since its error is more important. | |
214 | */ | |
215 | @@ -580,9 +575,8 @@ update_resolv_conf (NMDnsManager *self, | |
216 | MY_RESOLV_CONF_TMP, | |
217 | g_strerror (errno)); | |
218 | } | |
219 | - } | |
220 | - | |
221 | - if (!ret) | |
222 | + return SR_ERROR; | |
223 | + } else if (!success) | |
224 | return SR_ERROR; | |
225 | ||
226 | if (rename (MY_RESOLV_CONF_TMP, MY_RESOLV_CONF) < 0) { | |
227 | @@ -598,30 +592,32 @@ update_resolv_conf (NMDnsManager *self, | |
228 | if (!install_etc) | |
229 | return SR_SUCCESS; | |
230 | ||
231 | - /* Don't overwrite a symbolic link unless it points to MY_RESOLV_CONF. */ | |
232 | + /* A symlink pointing to NM's own resolv.conf (MY_RESOLV_CONF) is always | |
233 | + * overwritten to ensure that changes are indicated with inotify. Symlinks | |
234 | + * pointing to any other file are never overwritten. | |
235 | + */ | |
236 | if (lstat (_PATH_RESCONF, &st) != -1) { | |
237 | - /* Don't overwrite a symbolic link. */ | |
238 | if (S_ISLNK (st.st_mode)) { | |
239 | if (stat (_PATH_RESCONF, &st) != -1) { | |
240 | - char *path = g_file_read_link (_PATH_RESCONF, NULL); | |
241 | - gboolean not_ours = g_strcmp0 (path, MY_RESOLV_CONF) != 0; | |
242 | + gs_free char *path = g_file_read_link (_PATH_RESCONF, NULL); | |
243 | ||
244 | - g_free (path); | |
245 | - if (not_ours) | |
246 | + if (g_strcmp0 (path, MY_RESOLV_CONF) != 0) { | |
247 | + /* It's not NM's symlink; do nothing */ | |
248 | return SR_SUCCESS; | |
249 | + } | |
250 | + | |
251 | + /* resolv.conf is a symlink owned by NM and the target is accessible | |
252 | + */ | |
253 | } else { | |
254 | - if (errno != ENOENT) | |
255 | - return SR_SUCCESS; | |
256 | - g_set_error (error, | |
257 | - NM_MANAGER_ERROR, | |
258 | - NM_MANAGER_ERROR_FAILED, | |
259 | - "Could not stat %s: %s\n", | |
260 | - _PATH_RESCONF, | |
261 | - g_strerror (errno)); | |
262 | - return SR_ERROR; | |
263 | + /* resolv.conf is a symlink but the target is not accessible; | |
264 | + * some other program is probably managing resolv.conf and | |
265 | + * NM should not touch it. | |
266 | + */ | |
267 | + return SR_SUCCESS; | |
268 | } | |
269 | } | |
270 | } else if (errno != ENOENT) { | |
271 | + /* NM cannot read /etc/resolv.conf */ | |
272 | g_set_error (error, | |
273 | NM_MANAGER_ERROR, | |
274 | NM_MANAGER_ERROR_FAILED, | |
275 | @@ -631,6 +627,10 @@ update_resolv_conf (NMDnsManager *self, | |
276 | return SR_ERROR; | |
277 | } | |
278 | ||
279 | + /* By this point, either /etc/resolv.conf does not exist, is a regular | |
280 | + * file, or is a symlink already owned by NM. In all cases /etc/resolv.conf | |
281 | + * is replaced with a symlink pointing to NM's resolv.conf in /var/run/. | |
282 | + */ | |
283 | if (unlink (RESOLV_CONF_TMP) == -1 && errno != ENOENT) { | |
284 | g_set_error (error, | |
285 | NM_MANAGER_ERROR, |
10 | 10 | |
11 | 11 | Closes: #755039 |
12 | 12 | --- |
13 | src/devices/nm-device.c | 2 +- | |
14 | 1 file changed, 1 insertion(+), 1 deletion(-) | |
13 | src/devices/nm-arping-manager.c | 4 ++-- | |
14 | 1 file changed, 2 insertions(+), 2 deletions(-) | |
15 | 15 | |
16 | diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c | |
17 | index 93782a4..81487e6 100644 | |
18 | --- a/src/devices/nm-device.c | |
19 | +++ b/src/devices/nm-device.c | |
20 | @@ -6458,7 +6458,7 @@ send_arps (NMDevice *self, const char *mode_arg) | |
21 | if (num == 0) | |
22 | return; | |
16 | diff --git a/src/devices/nm-arping-manager.c b/src/devices/nm-arping-manager.c | |
17 | index dfb20b4..eb8338f 100644 | |
18 | --- a/src/devices/nm-arping-manager.c | |
19 | +++ b/src/devices/nm-arping-manager.c | |
20 | @@ -202,7 +202,7 @@ nm_arping_manager_start_probe (NMArpingManager *self, guint timeout, GError **er | |
21 | ||
22 | priv->completed = 0; | |
23 | 23 | |
24 | 24 | - argv[0] = nm_utils_find_helper ("arping", NULL, NULL); |
25 | 25 | + argv[0] = nm_utils_find_helper ("arping", "/usr/bin/arping", NULL); |
26 | 26 | if (!argv[0]) { |
27 | _LOGW (LOGD_DEVICE | LOGD_IP4, "arping could not be found; no ARPs will be sent"); | |
27 | g_set_error_literal (error, NM_DEVICE_ERROR, NM_DEVICE_ERROR_FAILED, | |
28 | "arping could not be found"); | |
29 | @@ -317,7 +317,7 @@ send_announcements (NMArpingManager *self, const char *mode_arg) | |
28 | 30 | return; |
31 | } | |
32 | ||
33 | - argv[0] = nm_utils_find_helper ("arping", NULL, NULL); | |
34 | + argv[0] = nm_utils_find_helper ("arping", "/usr/bin/arping", NULL); | |
35 | if (!argv[0]) { | |
36 | _LOGW ("arping could not be found; no ARPs will be sent"); | |
37 | return; |
0 | From: Dan Williams <dcbw@redhat.com> | |
1 | Date: Fri, 5 Feb 2016 16:24:40 -0600 | |
2 | Subject: libnm: fix NMSettingVxlan ageing and limit max values | |
3 | ||
4 | They are actually u32 in the kernel. Plus if we use G_MAXINT32 it | |
5 | causes gtkdoc to write out "Allowed values: <= G_MAXLONG" on i386 | |
6 | and "Allowed values: <= G_MAXINT" on x86_64, breaking multilib. | |
7 | ||
8 | Fixes: 95dfd99afc3fe815b013a8613fbd2cf178355952 | |
9 | --- | |
10 | libnm-core/nm-setting-vxlan.c | 4 ++-- | |
11 | 1 file changed, 2 insertions(+), 2 deletions(-) | |
12 | ||
13 | diff --git a/libnm-core/nm-setting-vxlan.c b/libnm-core/nm-setting-vxlan.c | |
14 | index f1567d8..d071532 100644 | |
15 | --- a/libnm-core/nm-setting-vxlan.c | |
16 | +++ b/libnm-core/nm-setting-vxlan.c | |
17 | @@ -707,7 +707,7 @@ nm_setting_vxlan_class_init (NMSettingVxlanClass *setting_class) | |
18 | g_object_class_install_property | |
19 | (object_class, PROP_AGEING, | |
20 | g_param_spec_uint (NM_SETTING_VXLAN_AGEING, "", "", | |
21 | - 0, G_MAXINT32, 300, | |
22 | + 0, G_MAXUINT32, 300, | |
23 | G_PARAM_READWRITE | | |
24 | G_PARAM_CONSTRUCT | | |
25 | NM_SETTING_PARAM_INFERRABLE | | |
26 | @@ -724,7 +724,7 @@ nm_setting_vxlan_class_init (NMSettingVxlanClass *setting_class) | |
27 | g_object_class_install_property | |
28 | (object_class, PROP_LIMIT, | |
29 | g_param_spec_uint (NM_SETTING_VXLAN_LIMIT, "", "", | |
30 | - 0, G_MAXINT32, 0, | |
31 | + 0, G_MAXUINT32, 0, | |
32 | G_PARAM_READWRITE | | |
33 | G_PARAM_CONSTRUCT | | |
34 | NM_SETTING_PARAM_INFERRABLE | |
0 | From: Dan Williams <dcbw@redhat.com> | |
1 | Date: Fri, 5 Feb 2016 16:18:05 -0600 | |
2 | Subject: libnm: fix copy & paste error in NMSettingVxlan properties | |
3 | ||
4 | Fixes: 95dfd99afc3fe815b013a8613fbd2cf178355952 | |
5 | --- | |
6 | libnm-core/nm-setting-vxlan.c | 2 +- | |
7 | 1 file changed, 1 insertion(+), 1 deletion(-) | |
8 | ||
9 | diff --git a/libnm-core/nm-setting-vxlan.c b/libnm-core/nm-setting-vxlan.c | |
10 | index 814623b..f1567d8 100644 | |
11 | --- a/libnm-core/nm-setting-vxlan.c | |
12 | +++ b/libnm-core/nm-setting-vxlan.c | |
13 | @@ -722,7 +722,7 @@ nm_setting_vxlan_class_init (NMSettingVxlanClass *setting_class) | |
14 | * Since: 1.2 | |
15 | **/ | |
16 | g_object_class_install_property | |
17 | - (object_class, PROP_AGEING, | |
18 | + (object_class, PROP_LIMIT, | |
19 | g_param_spec_uint (NM_SETTING_VXLAN_LIMIT, "", "", | |
20 | 0, G_MAXINT32, 0, | |
21 | G_PARAM_READWRITE | |
0 | From: Dan Williams <dcbw@redhat.com> | |
1 | Date: Wed, 20 Jan 2016 10:53:54 -0600 | |
2 | Subject: libnm,vpn: restore export of deprecated NMVpnPluginOld symbols | |
3 | ||
4 | Deprecated of course, but shouldn't have been removed from the ABI. | |
5 | ||
6 | Fixes: 867227dd4aac8371b3cacc366b32a3fa96eba42a | |
7 | ||
8 | (cherry-picked from commit d59c1d4c8aee9f3bee7e30eb7505aace62572fff) | |
9 | --- | |
10 | docs/libnm/Makefile.am | 1 - | |
11 | libnm/libnm.ver | 11 +++++++++++ | |
12 | libnm/nm-vpn-plugin-old.c | 40 ++++++++++++++++++++++++++++++++++++++++ | |
13 | 3 files changed, 51 insertions(+), 1 deletion(-) | |
14 | ||
15 | diff --git a/docs/libnm/Makefile.am b/docs/libnm/Makefile.am | |
16 | index 5b96d5a..380371e 100644 | |
17 | --- a/docs/libnm/Makefile.am | |
18 | +++ b/docs/libnm/Makefile.am | |
19 | @@ -54,7 +54,6 @@ IGNORE_HFILES= \ | |
20 | nm-setting-private.h \ | |
21 | nm-types.h \ | |
22 | nm-utils-private.h \ | |
23 | - nm-vpn-plugin-old.h \ | |
24 | nm-vpn-service-plugin.h \ | |
25 | nm-core-tests-enum-types.h | |
26 | ||
27 | diff --git a/libnm/libnm.ver b/libnm/libnm.ver | |
28 | index ed008ee..1b18560 100644 | |
29 | --- a/libnm/libnm.ver | |
30 | +++ b/libnm/libnm.ver | |
31 | @@ -821,6 +821,17 @@ global: | |
32 | nm_vpn_plugin_error_get_type; | |
33 | nm_vpn_plugin_error_quark; | |
34 | nm_vpn_plugin_failure_get_type; | |
35 | + nm_vpn_plugin_old_disconnect; | |
36 | + nm_vpn_plugin_old_failure; | |
37 | + nm_vpn_plugin_old_get_connection; | |
38 | + nm_vpn_plugin_old_get_secret_flags; | |
39 | + nm_vpn_plugin_old_get_state; | |
40 | + nm_vpn_plugin_old_get_type; | |
41 | + nm_vpn_plugin_old_read_vpn_details; | |
42 | + nm_vpn_plugin_old_secrets_required; | |
43 | + nm_vpn_plugin_old_set_ip4_config; | |
44 | + nm_vpn_plugin_old_set_login_banner; | |
45 | + nm_vpn_plugin_old_set_state; | |
46 | nm_vpn_service_state_get_type; | |
47 | nm_wep_key_type_get_type; | |
48 | nm_wimax_nsp_connection_valid; | |
49 | diff --git a/libnm/nm-vpn-plugin-old.c b/libnm/nm-vpn-plugin-old.c | |
50 | index cfc8c66..4854b66 100644 | |
51 | --- a/libnm/nm-vpn-plugin-old.c | |
52 | +++ b/libnm/nm-vpn-plugin-old.c | |
53 | @@ -129,6 +129,11 @@ nm_vpn_plugin_old_get_connection (NMVpnPluginOld *plugin) | |
54 | return connection; | |
55 | } | |
56 | ||
57 | +/** | |
58 | + * nm_vpn_plugin_old_get_state: | |
59 | + * | |
60 | + * Deprecated: 1.2: replaced by NMVpnServicePlugin | |
61 | + */ | |
62 | NMVpnServiceState | |
63 | nm_vpn_plugin_old_get_state (NMVpnPluginOld *plugin) | |
64 | { | |
65 | @@ -137,6 +142,11 @@ nm_vpn_plugin_old_get_state (NMVpnPluginOld *plugin) | |
66 | return NM_VPN_PLUGIN_OLD_GET_PRIVATE (plugin)->state; | |
67 | } | |
68 | ||
69 | +/** | |
70 | + * nm_vpn_plugin_old_set_state: | |
71 | + * | |
72 | + * Deprecated: 1.2: replaced by NMVpnServicePlugin | |
73 | + */ | |
74 | void | |
75 | nm_vpn_plugin_old_set_state (NMVpnPluginOld *plugin, | |
76 | NMVpnServiceState state) | |
77 | @@ -152,6 +162,11 @@ nm_vpn_plugin_old_set_state (NMVpnPluginOld *plugin, | |
78 | } | |
79 | } | |
80 | ||
81 | +/** | |
82 | + * nm_vpn_plugin_old_set_login_banner: | |
83 | + * | |
84 | + * Deprecated: 1.2: replaced by NMVpnServicePlugin | |
85 | + */ | |
86 | void | |
87 | nm_vpn_plugin_old_set_login_banner (NMVpnPluginOld *plugin, | |
88 | const char *banner) | |
89 | @@ -162,6 +177,11 @@ nm_vpn_plugin_old_set_login_banner (NMVpnPluginOld *plugin, | |
90 | g_signal_emit (plugin, signals[LOGIN_BANNER], 0, banner); | |
91 | } | |
92 | ||
93 | +/** | |
94 | + * nm_vpn_plugin_old_failure: | |
95 | + * | |
96 | + * Deprecated: 1.2: replaced by NMVpnServicePlugin | |
97 | + */ | |
98 | void | |
99 | nm_vpn_plugin_old_failure (NMVpnPluginOld *plugin, | |
100 | NMVpnPluginFailure reason) | |
101 | @@ -171,6 +191,11 @@ nm_vpn_plugin_old_failure (NMVpnPluginOld *plugin, | |
102 | g_signal_emit (plugin, signals[FAILURE], 0, reason); | |
103 | } | |
104 | ||
105 | +/** | |
106 | + * nm_vpn_plugin_old_disconnect: | |
107 | + * | |
108 | + * Deprecated: 1.2: replaced by NMVpnServicePlugin | |
109 | + */ | |
110 | gboolean | |
111 | nm_vpn_plugin_old_disconnect (NMVpnPluginOld *plugin, GError **err) | |
112 | { | |
113 | @@ -277,6 +302,11 @@ schedule_fail_stop (NMVpnPluginOld *plugin) | |
114 | priv->fail_stop_id = g_idle_add (fail_stop, plugin); | |
115 | } | |
116 | ||
117 | +/** | |
118 | + * nm_vpn_plugin_old_set_config: | |
119 | + * | |
120 | + * Deprecated: 1.2: replaced by NMVpnServicePlugin | |
121 | + */ | |
122 | void | |
123 | nm_vpn_plugin_old_set_config (NMVpnPluginOld *plugin, | |
124 | GVariant *config) | |
125 | @@ -316,6 +346,11 @@ nm_vpn_plugin_old_set_config (NMVpnPluginOld *plugin, | |
126 | g_signal_emit (plugin, signals[CONFIG], 0, config); | |
127 | } | |
128 | ||
129 | +/** | |
130 | + * nm_vpn_plugin_old_set_ip4_config: | |
131 | + * | |
132 | + * Deprecated: 1.2: replaced by NMVpnServicePlugin | |
133 | + */ | |
134 | void | |
135 | nm_vpn_plugin_old_set_ip4_config (NMVpnPluginOld *plugin, | |
136 | GVariant *ip4_config) | |
137 | @@ -371,6 +406,11 @@ nm_vpn_plugin_old_set_ip4_config (NMVpnPluginOld *plugin, | |
138 | nm_vpn_plugin_old_set_state (plugin, NM_VPN_SERVICE_STATE_STARTED); | |
139 | } | |
140 | ||
141 | +/** | |
142 | + * nm_vpn_plugin_old_set_ip6_config: | |
143 | + * | |
144 | + * Deprecated: 1.2: replaced by NMVpnServicePlugin | |
145 | + */ | |
146 | void | |
147 | nm_vpn_plugin_old_set_ip6_config (NMVpnPluginOld *plugin, | |
148 | GVariant *ip6_config) |
2 | 2 | Don-t-setup-Sleep-Monitor-if-not-booted-with-systemd.patch |
3 | 3 | fix-arping-path.patch |
4 | 4 | Check-at-runtime-whether-to-start-ModemManager.patch |
5 | build-install-nm-settings-ifcfg-rh.5-man-page-condit.patch | |
6 | 5 | Don-t-make-NetworkManager-D-Bus-activatable.patch |
7 | 6 | Don-t-block-network.target-on-NetworkManager-wait-on.patch |
8 | 7 | Fix-iscsiadm-path.patch |
9 | libnm-vpn-restore-export-of-deprecated-NMVpnPluginOld-sym.patch | |
10 | tests-use-dbus-run-session-instead-of-dbus-launch.patch | |
11 | systemd-add-chroot-capability.patch | |
12 | Use-bash-explicitly-when-running-the-tests.patch | |
13 | dns-clean-up-error-paths-in-dns-manager.patch | |
14 | libnm-fix-copy-paste-error-in-NMSettingVxlan-properties.patch | |
15 | libnm-fix-NMSettingVxlan-ageing-and-limit-max-values.patch |
0 | From: Lubomir Rintel <lkundrak@v3.sk> | |
1 | Date: Fri, 22 Jan 2016 22:11:07 +0100 | |
2 | Subject: systemd: add chroot capability | |
3 | ||
4 | CAP_SYS_CHROOT is needed for openvpn hardening. | |
5 | --- | |
6 | data/NetworkManager.service.in | 2 +- | |
7 | 1 file changed, 1 insertion(+), 1 deletion(-) | |
8 | ||
9 | diff --git a/data/NetworkManager.service.in b/data/NetworkManager.service.in | |
10 | index 90c0664..ff0e301 100644 | |
11 | --- a/data/NetworkManager.service.in | |
12 | +++ b/data/NetworkManager.service.in | |
13 | @@ -9,7 +9,7 @@ ExecStart=@sbindir@/NetworkManager --no-daemon | |
14 | Restart=on-failure | |
15 | # NM doesn't want systemd to kill its children for it | |
16 | KillMode=process | |
17 | -CapabilityBoundingSet=CAP_NET_ADMIN CAP_DAC_OVERRIDE CAP_NET_RAW CAP_NET_BIND_SERVICE CAP_SETGID CAP_SETUID CAP_SYS_MODULE CAP_AUDIT_WRITE CAP_KILL | |
18 | +CapabilityBoundingSet=CAP_NET_ADMIN CAP_DAC_OVERRIDE CAP_NET_RAW CAP_NET_BIND_SERVICE CAP_SETGID CAP_SETUID CAP_SYS_MODULE CAP_AUDIT_WRITE CAP_KILL CAP_SYS_CHROOT | |
19 | ProtectSystem=true | |
20 | ProtectHome=read-only | |
21 |
0 | From: Michael Biebl <biebl@debian.org> | |
1 | Date: Thu, 21 Jan 2016 23:11:29 +0100 | |
2 | Subject: tests: use dbus-run-session instead of dbus-launch | |
3 | ||
4 | The dbus-run-session utility was designed to run a process within a | |
5 | D-Bus session, specifically for running regressions tests and is much | |
6 | better suited then dbus-launch. As an additional benefit, this avoids | |
7 | any X dependencies. | |
8 | --- | |
9 | libnm-glib/tests/libnm-glib-test-launch.sh | 6 +----- | |
10 | libnm/tests/libnm-test-launch.sh | 6 +----- | |
11 | 2 files changed, 2 insertions(+), 10 deletions(-) | |
12 | ||
13 | diff --git a/libnm-glib/tests/libnm-glib-test-launch.sh b/libnm-glib/tests/libnm-glib-test-launch.sh | |
14 | index 980f834..1064e41 100755 | |
15 | --- a/libnm-glib/tests/libnm-glib-test-launch.sh | |
16 | +++ b/libnm-glib/tests/libnm-glib-test-launch.sh | |
17 | @@ -1,7 +1,3 @@ | |
18 | #!/bin/sh | |
19 | ||
20 | -# Spawn DBus | |
21 | -eval `dbus-launch --sh-syntax` | |
22 | -trap "kill $DBUS_SESSION_BUS_PID" EXIT | |
23 | - | |
24 | -"$@" | |
25 | +dbus-run-session -- "$@" | |
26 | diff --git a/libnm/tests/libnm-test-launch.sh b/libnm/tests/libnm-test-launch.sh | |
27 | index 980f834..1064e41 100755 | |
28 | --- a/libnm/tests/libnm-test-launch.sh | |
29 | +++ b/libnm/tests/libnm-test-launch.sh | |
30 | @@ -1,7 +1,3 @@ | |
31 | #!/bin/sh | |
32 | ||
33 | -# Spawn DBus | |
34 | -eval `dbus-launch --sh-syntax` | |
35 | -trap "kill $DBUS_SESSION_BUS_PID" EXIT | |
36 | - | |
37 | -"$@" | |
38 | +dbus-run-session -- "$@" |