summaryrefslogtreecommitdiff
path: root/src/nm-ip4-config.c
diff options
context:
space:
mode:
authorBeniamino Galvani <bgalvani@redhat.com>2018-08-31 15:14:39 +0200
committerBeniamino Galvani <bgalvani@redhat.com>2018-09-06 09:07:41 +0200
commitbc7efc750ab4ba0d67d61d17ad2d45e087cb80bb (patch)
tree0600fffe2186a9630393043476f2f050467b1780 /src/nm-ip4-config.c
parente83c31bbe0afff018dad0fa09184d0d63c2ee1a0 (diff)
core: add support for connection.llmnr
Diffstat (limited to 'src/nm-ip4-config.c')
-rw-r--r--src/nm-ip4-config.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/nm-ip4-config.c b/src/nm-ip4-config.c
index 1edd3257af..5f1004130c 100644
--- a/src/nm-ip4-config.c
+++ b/src/nm-ip4-config.c
@@ -295,6 +295,7 @@ typedef struct {
NMIPConfigSource mtu_source;
int dns_priority;
NMSettingConnectionMdns mdns;
+ NMSettingConnectionLlmnr llmnr;
GArray *nameservers;
GPtrArray *domains;
GPtrArray *searches;
@@ -916,6 +917,7 @@ void
nm_ip4_config_merge_setting (NMIP4Config *self,
NMSettingIPConfig *setting,
NMSettingConnectionMdns mdns,
+ NMSettingConnectionLlmnr llmnr,
guint32 route_table,
guint32 route_metric)
{
@@ -1033,6 +1035,7 @@ nm_ip4_config_merge_setting (NMIP4Config *self,
nm_ip4_config_set_dns_priority (self, priority);
nm_ip4_config_mdns_set (self, mdns);
+ nm_ip4_config_llmnr_set (self, llmnr);
g_object_thaw_notify (G_OBJECT (self));
}
@@ -1253,6 +1256,10 @@ nm_ip4_config_merge (NMIP4Config *dst,
nm_ip4_config_mdns_set (dst,
NM_MAX (nm_ip4_config_mdns_get (src),
nm_ip4_config_mdns_get (dst)));
+ /* LLMNR */
+ nm_ip4_config_llmnr_set (dst,
+ NM_MAX (nm_ip4_config_llmnr_get (src),
+ nm_ip4_config_llmnr_get (dst)));
g_object_thaw_notify (G_OBJECT (dst));
}
@@ -1494,6 +1501,10 @@ nm_ip4_config_subtract (NMIP4Config *dst,
if (nm_ip4_config_mdns_get (src) == nm_ip4_config_mdns_get (dst))
nm_ip4_config_mdns_set (dst, NM_SETTING_CONNECTION_MDNS_DEFAULT);
+ /* LLMNR */
+ if (nm_ip4_config_llmnr_get (src) == nm_ip4_config_llmnr_get (dst))
+ nm_ip4_config_llmnr_set (dst, NM_SETTING_CONNECTION_LLMNR_DEFAULT);
+
g_object_thaw_notify (G_OBJECT (dst));
}
@@ -1595,6 +1606,7 @@ _nm_ip4_config_intersect_helper (NMIP4Config *dst,
/* ignore NIS */
/* ignore WINS */
/* ignore mdns */
+ /* ignore LLMNR */
if (update_dst)
g_object_thaw_notify (G_OBJECT (dst));
@@ -1874,6 +1886,7 @@ nm_ip4_config_replace (NMIP4Config *dst, const NMIP4Config *src, gboolean *relev
}
dst_priv->mdns = src_priv->mdns;
+ dst_priv->llmnr = src_priv->llmnr;
/* DNS priority */
if (src_priv->dns_priority != dst_priv->dns_priority) {
@@ -2562,6 +2575,19 @@ nm_ip4_config_mdns_set (NMIP4Config *self,
NM_IP4_CONFIG_GET_PRIVATE (self)->mdns = mdns;
}
+NMSettingConnectionLlmnr
+nm_ip4_config_llmnr_get (const NMIP4Config *self)
+{
+ return NM_IP4_CONFIG_GET_PRIVATE (self)->llmnr;
+}
+
+void
+nm_ip4_config_llmnr_set (NMIP4Config *self,
+ NMSettingConnectionLlmnr llmnr)
+{
+ NM_IP4_CONFIG_GET_PRIVATE (self)->llmnr = llmnr;
+}
+
/*****************************************************************************/
void
@@ -3212,6 +3238,7 @@ nm_ip4_config_init (NMIP4Config *self)
NMP_OBJECT_TYPE_IP4_ROUTE);
priv->mdns = NM_SETTING_CONNECTION_MDNS_DEFAULT;
+ priv->llmnr = NM_SETTING_CONNECTION_LLMNR_DEFAULT;
priv->nameservers = g_array_new (FALSE, FALSE, sizeof (guint32));
priv->domains = g_ptr_array_new_with_free_func (g_free);
priv->searches = g_ptr_array_new_with_free_func (g_free);