summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Winship <danw@gnome.org>2012-09-26 10:22:21 -0400
committerDan Winship <danw@gnome.org>2012-09-26 10:24:33 -0400
commit89b08a0243e3f6a6fd556e1a99ffe0ebf86c9710 (patch)
tree237a07398a98c5e5719e2716c459a37f5f3c858f
parentbbbf9ad37b295282125d5ea78044d06e74d6b116 (diff)
ipv6: restore the ability to set a default IPv6 route via a device (rh #829010)
replace_default_ip6_route() was mistakenly requiring gw to be non-NULL, which meant it could only set the route via a gateway, not via a device (thus breaking IPv6-over-openconnect)
-rw-r--r--src/nm-system.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/nm-system.c b/src/nm-system.c
index 09e1da58..bcff5092 100644
--- a/src/nm-system.c
+++ b/src/nm-system.c
@@ -1160,12 +1160,16 @@ replace_default_ip6_route (int ifindex, const struct in6_addr *gw, int mss)
char gw_str[INET6_ADDRSTRLEN + 1];
g_return_val_if_fail (ifindex > 0, FALSE);
- g_return_val_if_fail (gw != NULL, FALSE);
if (nm_logging_level_enabled (LOGL_DEBUG)) {
- memset (gw_str, 0, sizeof (gw_str));
- if (inet_ntop (AF_INET6, gw, gw_str, sizeof (gw_str) - 1))
- nm_log_dbg (LOGD_IP6, "Setting IPv6 default route via %s", gw_str);
+ if (gw) {
+ memset (gw_str, 0, sizeof (gw_str));
+ if (inet_ntop (AF_INET6, gw, gw_str, sizeof (gw_str) - 1))
+ nm_log_dbg (LOGD_IP6, "Setting IPv6 default route via %s", gw_str);
+ } else {
+ nm_log_dbg (LOGD_IP6, "Setting IPv6 default route via %s",
+ nm_netlink_index_to_iface (ifindex));
+ }
}
/* We can't just use NLM_F_REPLACE here like in the IPv4 case, because