diff options
author | Jiří Klimeš <jklimes@redhat.com> | 2013-10-07 17:47:52 +0200 |
---|---|---|
committer | Jiří Klimeš <jklimes@redhat.com> | 2013-10-07 18:10:27 +0200 |
commit | 2af8c08f6591b5b199bff1775d845c47ac131d58 (patch) | |
tree | c730ff6036727a9b4234b3e552537064b6a1d9dd | |
parent | 87041545b40fd0c0cfae16a8e605552b7715dc15 (diff) | |
download | NetworkManager-2af8c08f6591b5b199bff1775d845c47ac131d58.tar.gz |
ifcfg-rh: ignore default routes in route6 file (rh #991807)
Base on patch from Francesco Prelz <Francesco Prelz mi infn it>:
https://mail.gnome.org/archives/networkmanager-list/2013-January/msg00095.html
https://bugzilla.redhat.com/show_bug.cgi?id=991807
-rw-r--r-- | src/settings/plugins/ifcfg-rh/reader.c | 14 | ||||
-rw-r--r-- | src/settings/plugins/ifcfg-rh/tests/network-scripts/route6-test-wired-ipv6-manual | 3 |
2 files changed, 13 insertions, 4 deletions
diff --git a/src/settings/plugins/ifcfg-rh/reader.c b/src/settings/plugins/ifcfg-rh/reader.c index 4586b5ccdf..f9dd034037 100644 --- a/src/settings/plugins/ifcfg-rh/reader.c +++ b/src/settings/plugins/ifcfg-rh/reader.c @@ -1120,9 +1120,9 @@ read_route6_file (const char *filename, NMSettingIP6Config *s_ip6, GError **erro gboolean success = FALSE; const char *pattern_empty = "^\\s*(\\#.*)?$"; - const char *pattern_to1 = "^\\s*(" IPV6_ADDR_REGEX "|default)" /* IPv6 or 'default' keyword */ + const char *pattern_to1 = "^\\s*(default|" IPV6_ADDR_REGEX ")" /* IPv6 or 'default' keyword */ "(?:/(\\d{1,3}))?"; /* optional prefix */ - const char *pattern_to2 = "to\\s+(" IPV6_ADDR_REGEX "|default)" /* IPv6 or 'default' keyword */ + const char *pattern_to2 = "to\\s+(default|" IPV6_ADDR_REGEX ")" /* IPv6 or 'default' keyword */ "(?:/(\\d{1,3}))?"; /* optional prefix */ const char *pattern_via = "via\\s+(" IPV6_ADDR_REGEX ")"; /* IPv6 of gateway */ const char *pattern_metric = "metric\\s+(\\d+)"; /* metric */ @@ -1168,8 +1168,14 @@ read_route6_file (const char *filename, NMSettingIP6Config *s_ip6, GError **erro } } dest = g_match_info_fetch (match_info, 1); - if (!strcmp (dest, "default")) - strcpy (dest, "::"); + if (!g_strcmp0 (dest, "default")) { + /* Ignore default route - NM handles it internally */ + g_free (dest); + g_match_info_free (match_info); + PLUGIN_WARN (IFCFG_PLUGIN_NAME, " warning: ignoring manual default route: '%s' (%s)", + *iter, filename); + continue; + } if (inet_pton (AF_INET6, dest, &ip6_addr) != 1) { g_set_error (error, IFCFG_PLUGIN_ERROR, 0, "Invalid IP6 route destination address '%s'", dest); diff --git a/src/settings/plugins/ifcfg-rh/tests/network-scripts/route6-test-wired-ipv6-manual b/src/settings/plugins/ifcfg-rh/tests/network-scripts/route6-test-wired-ipv6-manual index ae4e47ae55..2a994c502e 100644 --- a/src/settings/plugins/ifcfg-rh/tests/network-scripts/route6-test-wired-ipv6-manual +++ b/src/settings/plugins/ifcfg-rh/tests/network-scripts/route6-test-wired-ipv6-manual @@ -1 +1,4 @@ 9876::1234/96 via 9876::7777 metric 2 + +# default route is ignored by ifcfg-rh reader, because NM handles it internally +default via dead::beaf |