summaryrefslogtreecommitdiff
path: root/libnm-util
diff options
context:
space:
mode:
authorLubomir Rintel <lkundrak@v3.sk>2016-11-01 13:43:01 +0100
committerLubomir Rintel <lkundrak@v3.sk>2016-11-09 17:23:32 +0100
commit0e6d1940601250e72a85fbcbdce43920f6f052ef (patch)
tree4c8cb81d2448fec94ad987be65a6ffd6459688d3 /libnm-util
parent611870347a26bd3ed1839064aedf34c22b37b74e (diff)
downloadNetworkManager-0e6d1940601250e72a85fbcbdce43920f6f052ef.tar.gz
settings: allow method=shared with manual IPv6 configuration
IPv4 already allows setting an address, reusing its prefix for the network it shares connection with. Additionally, for IPv6, the NDP can also share the DNS configuration.
Diffstat (limited to 'libnm-util')
-rw-r--r--libnm-util/nm-setting-ip6-config.c19
1 files changed, 11 insertions, 8 deletions
diff --git a/libnm-util/nm-setting-ip6-config.c b/libnm-util/nm-setting-ip6-config.c
index 9ad93ac16c..37bdd0ed73 100644
--- a/libnm-util/nm-setting-ip6-config.c
+++ b/libnm-util/nm-setting-ip6-config.c
@@ -868,14 +868,17 @@ verify (NMSetting *setting, GSList *all_settings, GError **error)
return FALSE;
}
- if (g_slist_length (priv->addresses)) {
- g_set_error (error,
- NM_SETTING_IP6_CONFIG_ERROR,
- NM_SETTING_IP6_CONFIG_ERROR_NOT_ALLOWED_FOR_METHOD,
- _("this property is not allowed for '%s=%s'"),
- NM_SETTING_IP6_CONFIG_METHOD, priv->method);
- g_prefix_error (error, "%s.%s: ", NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_ADDRESSES);
- return FALSE;
+ /* Shared allows IP addresses; link-local and disabled do not */
+ if (strcmp (priv->method, NM_SETTING_IP6_CONFIG_METHOD_SHARED) != 0) {
+ if (g_slist_length (priv->addresses)) {
+ g_set_error (error,
+ NM_SETTING_IP6_CONFIG_ERROR,
+ NM_SETTING_IP6_CONFIG_ERROR_NOT_ALLOWED_FOR_METHOD,
+ _("this property is not allowed for '%s=%s'"),
+ NM_SETTING_IP6_CONFIG_METHOD, priv->method);
+ g_prefix_error (error, "%s.%s: ", NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_ADDRESSES);
+ return FALSE;
+ }
}
} else if ( !strcmp (priv->method, NM_SETTING_IP6_CONFIG_METHOD_AUTO)
|| !strcmp (priv->method, NM_SETTING_IP6_CONFIG_METHOD_DHCP)) {