mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-03-06 05:50:34 +01:00
core: add never-default field to NMIP{4,6}Config
(cherry picked from commit9eba457426) (cherry picked from commit3ebe333492)
This commit is contained in:
parent
7752c6fe4f
commit
aa031261d5
4 changed files with 75 additions and 1 deletions
|
|
@ -276,6 +276,7 @@ NM_GOBJECT_PROPERTIES_DEFINE (NMIP4Config,
|
|||
|
||||
typedef struct {
|
||||
bool metered:1;
|
||||
bool never_default:1;
|
||||
guint32 mtu;
|
||||
int ifindex;
|
||||
NMIPConfigSource mtu_source;
|
||||
|
|
@ -1086,6 +1087,8 @@ nm_ip4_config_merge_setting (NMIP4Config *self,
|
|||
nm_ip4_config_mdns_set (self, mdns);
|
||||
nm_ip4_config_llmnr_set (self, llmnr);
|
||||
|
||||
nm_ip4_config_set_never_default (self, nm_setting_ip_config_get_never_default (setting));
|
||||
|
||||
g_object_thaw_notify (G_OBJECT (self));
|
||||
}
|
||||
|
||||
|
|
@ -1310,6 +1313,11 @@ nm_ip4_config_merge (NMIP4Config *dst,
|
|||
nm_ip4_config_set_metered (dst, nm_ip4_config_get_metered (dst) ||
|
||||
nm_ip4_config_get_metered (src));
|
||||
|
||||
/* never default */
|
||||
nm_ip4_config_set_never_default (dst,
|
||||
nm_ip4_config_get_never_default (dst)
|
||||
|| nm_ip4_config_get_never_default (src));
|
||||
|
||||
/* DNS priority */
|
||||
if (nm_ip4_config_get_dns_priority (src))
|
||||
nm_ip4_config_set_dns_priority (dst, nm_ip4_config_get_dns_priority (src));
|
||||
|
|
@ -2047,6 +2055,12 @@ nm_ip4_config_replace (NMIP4Config *dst, const NMIP4Config *src, gboolean *relev
|
|||
has_minor_changes = TRUE;
|
||||
}
|
||||
|
||||
/* never default */
|
||||
if (src_priv->never_default != dst_priv->never_default) {
|
||||
dst_priv->never_default = src_priv->never_default;
|
||||
has_minor_changes = TRUE;
|
||||
}
|
||||
|
||||
#if NM_MORE_ASSERTS
|
||||
/* config_equal does not compare *all* the fields, therefore, we might have has_minor_changes
|
||||
* regardless of config_equal. But config_equal must correspond to has_relevant_changes. */
|
||||
|
|
@ -2925,6 +2939,24 @@ nm_ip4_config_get_metered (const NMIP4Config *self)
|
|||
|
||||
/*****************************************************************************/
|
||||
|
||||
void
|
||||
nm_ip4_config_set_never_default (NMIP4Config *self, gboolean never_default)
|
||||
{
|
||||
NMIP4ConfigPrivate *priv = NM_IP4_CONFIG_GET_PRIVATE (self);
|
||||
|
||||
priv->never_default = never_default;
|
||||
}
|
||||
|
||||
gboolean
|
||||
nm_ip4_config_get_never_default (const NMIP4Config *self)
|
||||
{
|
||||
const NMIP4ConfigPrivate *priv = NM_IP4_CONFIG_GET_PRIVATE (self);
|
||||
|
||||
return priv->never_default;
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
const NMPObject *
|
||||
nm_ip4_config_nmpobj_lookup (const NMIP4Config *self, const NMPObject *needle)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -288,6 +288,9 @@ NMIPConfigSource nm_ip4_config_get_mtu_source (const NMIP4Config *self);
|
|||
void nm_ip4_config_set_metered (NMIP4Config *self, gboolean metered);
|
||||
gboolean nm_ip4_config_get_metered (const NMIP4Config *self);
|
||||
|
||||
void nm_ip4_config_set_never_default (NMIP4Config *self, gboolean never_default);
|
||||
gboolean nm_ip4_config_get_never_default (const NMIP4Config *self);
|
||||
|
||||
const NMPObject *nm_ip4_config_nmpobj_lookup (const NMIP4Config *self,
|
||||
const NMPObject *needle);
|
||||
gboolean nm_ip4_config_nmpobj_remove (NMIP4Config *self,
|
||||
|
|
@ -538,6 +541,21 @@ nm_ip_config_set_config_flags (NMIPConfig *self, NMIPConfigFlags flags, NMIPConf
|
|||
_NM_IP_CONFIG_DISPATCH_VOID (self, nm_ip4_config_set_config_flags, nm_ip6_config_set_config_flags, flags, mask);
|
||||
}
|
||||
|
||||
static inline gboolean
|
||||
nm_ip_config_get_never_default (const NMIPConfig *self)
|
||||
{
|
||||
_NM_IP_CONFIG_DISPATCH (self, nm_ip4_config_get_never_default, nm_ip6_config_get_never_default);
|
||||
}
|
||||
|
||||
static inline void
|
||||
nm_ip_config_set_never_default (NMIPConfig *self, gboolean never_default)
|
||||
{
|
||||
_NM_IP_CONFIG_DISPATCH_VOID(self,
|
||||
nm_ip4_config_set_never_default,
|
||||
nm_ip6_config_set_never_default,
|
||||
never_default);
|
||||
}
|
||||
|
||||
#define _NM_IP_CONFIG_DISPATCH_SET_OP(_return, dst, src, v4_func, v6_func, ...) \
|
||||
G_STMT_START { \
|
||||
gpointer _dst = (dst); \
|
||||
|
|
|
|||
|
|
@ -64,7 +64,8 @@ typedef struct {
|
|||
NMDedupMultiIdxType idx_ip6_routes;
|
||||
};
|
||||
NMIPConfigFlags config_flags;
|
||||
bool ipv6_disabled;
|
||||
bool ipv6_disabled:1;
|
||||
bool never_default:1;
|
||||
} NMIP6ConfigPrivate;
|
||||
|
||||
struct _NMIP6Config {
|
||||
|
|
@ -127,6 +128,24 @@ nm_ip6_config_set_privacy (NMIP6Config *self, NMSettingIP6ConfigPrivacy privacy)
|
|||
|
||||
/*****************************************************************************/
|
||||
|
||||
void
|
||||
nm_ip6_config_set_never_default (NMIP6Config *self, gboolean never_default)
|
||||
{
|
||||
NMIP6ConfigPrivate *priv = NM_IP6_CONFIG_GET_PRIVATE (self);
|
||||
|
||||
priv->never_default = never_default;
|
||||
}
|
||||
|
||||
gboolean
|
||||
nm_ip6_config_get_never_default (const NMIP6Config *self)
|
||||
{
|
||||
const NMIP6ConfigPrivate *priv = NM_IP6_CONFIG_GET_PRIVATE (self);
|
||||
|
||||
return priv->never_default;
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
const NMDedupMultiHeadEntry *
|
||||
nm_ip6_config_lookup_addresses (const NMIP6Config *self)
|
||||
{
|
||||
|
|
@ -753,6 +772,8 @@ nm_ip6_config_merge_setting (NMIP6Config *self,
|
|||
if (priority)
|
||||
nm_ip6_config_set_dns_priority (self, priority);
|
||||
|
||||
nm_ip6_config_set_never_default (self, nm_setting_ip_config_get_never_default (setting));
|
||||
|
||||
g_object_thaw_notify (G_OBJECT (self));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -191,6 +191,9 @@ const char * nm_ip6_config_get_dns_option (const NMIP6Config *self, guint i);
|
|||
void nm_ip6_config_set_dns_priority (NMIP6Config *self, int priority);
|
||||
int nm_ip6_config_get_dns_priority (const NMIP6Config *self);
|
||||
|
||||
void nm_ip6_config_set_never_default (NMIP6Config *self, gboolean never_default);
|
||||
gboolean nm_ip6_config_get_never_default (const NMIP6Config *self);
|
||||
|
||||
const NMPObject *nm_ip6_config_nmpobj_lookup (const NMIP6Config *self,
|
||||
const NMPObject *needle);
|
||||
gboolean nm_ip6_config_nmpobj_remove (NMIP6Config *self,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue