l3cfg: add more getters to NML3ConfigData

This commit is contained in:
Thomas Haller 2021-05-17 15:42:14 +02:00
parent 82cd0a8689
commit 4d929cc023
No known key found for this signature in database
GPG key ID: 29C2366E4DFC5728
3 changed files with 98 additions and 3 deletions

View file

@ -1364,6 +1364,14 @@ nm_l3_config_data_add_wins(NML3ConfigData *self, in_addr_t wins)
return _garray_inaddr_add(&self->wins, AF_INET, &wins);
}
const in_addr_t *
nm_l3_config_data_get_nis_servers(const NML3ConfigData *self, guint *out_len)
{
nm_assert(_NM_IS_L3_CONFIG_DATA(self, TRUE));
return _garray_inaddr_get(self->nis_servers, out_len);
}
gboolean
nm_l3_config_data_add_nis_server(NML3ConfigData *self, in_addr_t nis_server)
{
@ -1372,6 +1380,14 @@ nm_l3_config_data_add_nis_server(NML3ConfigData *self, in_addr_t nis_server)
return _garray_inaddr_add(&self->nis_servers, AF_INET, &nis_server);
}
const char *
nm_l3_config_data_get_nis_domain(const NML3ConfigData *self)
{
nm_assert(_NM_IS_L3_CONFIG_DATA(self, TRUE));
return self->nis_domain;
}
gboolean
nm_l3_config_data_set_nis_domain(NML3ConfigData *self, const char *nis_domain)
{
@ -1452,6 +1468,53 @@ nm_l3_config_data_add_dns_option(NML3ConfigData *self, int addr_family, const ch
return TRUE;
}
const char *const *
nm_l3_config_data_get_dns_options(const NML3ConfigData *self, int addr_family, guint *out_len)
{
nm_assert(_NM_IS_L3_CONFIG_DATA(self, TRUE));
nm_assert_addr_family(addr_family);
nm_assert(out_len);
return nm_strv_ptrarray_get_unsafe(self->dns_options_x[NM_IS_IPv4(addr_family)], out_len);
}
gboolean
nm_l3_config_data_get_dns_priority(const NML3ConfigData *self, int addr_family, int *out_prio)
{
switch (addr_family) {
case AF_UNSPEC:
if (NM_FLAGS_ANY(self->flags, NM_L3_CONFIG_DAT_FLAGS_HAS_DNS_PRIORITY_4)) {
if (NM_FLAGS_ANY(self->flags, NM_L3_CONFIG_DAT_FLAGS_HAS_DNS_PRIORITY_6)) {
NM_SET_OUT(out_prio, MIN(self->dns_priority_4, self->dns_priority_6));
return TRUE;
}
NM_SET_OUT(out_prio, self->dns_priority_4);
return TRUE;
}
if (NM_FLAGS_ANY(self->flags, NM_L3_CONFIG_DAT_FLAGS_HAS_DNS_PRIORITY_6)) {
NM_SET_OUT(out_prio, self->dns_priority_6);
return TRUE;
}
break;
case AF_INET:
if (NM_FLAGS_ANY(self->flags, NM_L3_CONFIG_DAT_FLAGS_HAS_DNS_PRIORITY_4)) {
NM_SET_OUT(out_prio, self->dns_priority_4);
return TRUE;
}
break;
case AF_INET6:
if (NM_FLAGS_ANY(self->flags, NM_L3_CONFIG_DAT_FLAGS_HAS_DNS_PRIORITY_6)) {
NM_SET_OUT(out_prio, self->dns_priority_6);
return TRUE;
}
break;
default:
nm_assert_not_reached();
}
NM_SET_OUT(out_prio, 0);
return FALSE;
}
gboolean
nm_l3_config_data_set_dns_priority(NML3ConfigData *self, int addr_family, int dns_priority)
{
@ -1471,6 +1534,14 @@ nm_l3_config_data_set_dns_priority(NML3ConfigData *self, int addr_family, int dn
return TRUE;
}
NMSettingConnectionMdns
nm_l3_config_data_get_mdns(const NML3ConfigData *self)
{
nm_assert(_NM_IS_L3_CONFIG_DATA(self, TRUE));
return self->mdns;
}
gboolean
nm_l3_config_data_set_mdns(NML3ConfigData *self, NMSettingConnectionMdns mdns)
{
@ -1483,6 +1554,14 @@ nm_l3_config_data_set_mdns(NML3ConfigData *self, NMSettingConnectionMdns mdns)
return TRUE;
}
NMSettingConnectionLlmnr
nm_l3_config_data_get_llmnr(const NML3ConfigData *self)
{
nm_assert(_NM_IS_L3_CONFIG_DATA(self, TRUE));
return self->llmnr;
}
gboolean
nm_l3_config_data_set_llmnr(NML3ConfigData *self, NMSettingConnectionLlmnr llmnr)
{

View file

@ -425,8 +425,12 @@ nm_l3_config_data_add_route_6(NML3ConfigData *self, const NMPlatformIP6Route *rt
const NMPObject *nm_l3_config_data_get_best_default_route(const NML3ConfigData *self,
int addr_family);
NMSettingConnectionMdns nm_l3_config_data_get_mdns(const NML3ConfigData *self);
gboolean nm_l3_config_data_set_mdns(NML3ConfigData *self, NMSettingConnectionMdns mdns);
NMSettingConnectionLlmnr nm_l3_config_data_get_llmnr(const NML3ConfigData *self);
gboolean nm_l3_config_data_set_llmnr(NML3ConfigData *self, NMSettingConnectionLlmnr llmnr);
NMIPRouteTableSyncMode nm_l3_config_data_get_route_table_sync(const NML3ConfigData *self,
@ -461,13 +465,17 @@ gboolean nm_l3_config_data_add_nameserver(NML3ConfigData *
gboolean nm_l3_config_data_clear_nameservers(NML3ConfigData *self, int addr_family);
const in_addr_t *nm_l3_config_data_get_nis_servers(const NML3ConfigData *self, guint *out_len);
gboolean nm_l3_config_data_add_nis_server(NML3ConfigData *self, in_addr_t nis_server);
const char *nm_l3_config_data_get_nis_domain(const NML3ConfigData *self);
gboolean nm_l3_config_data_set_nis_domain(NML3ConfigData *self, const char *nis_domain);
const char *const *
nm_l3_config_data_get_domains(const NML3ConfigData *self, int addr_family, guint *out_len);
gboolean nm_l3_config_data_set_nis_domain(NML3ConfigData *self, const char *nis_domain);
gboolean nm_l3_config_data_add_domain(NML3ConfigData *self, int addr_family, const char *domain);
const char *const *
@ -480,6 +488,12 @@ gboolean nm_l3_config_data_add_search(NML3ConfigData *self, int addr_family, con
gboolean
nm_l3_config_data_add_dns_option(NML3ConfigData *self, int addr_family, const char *dns_option);
const char *const *
nm_l3_config_data_get_dns_options(const NML3ConfigData *self, int addr_family, guint *out_len);
gboolean
nm_l3_config_data_get_dns_priority(const NML3ConfigData *self, int addr_family, int *out_prio);
gboolean
nm_l3_config_data_set_dns_priority(NML3ConfigData *self, int addr_family, int dns_priority);

View file

@ -173,6 +173,8 @@ struct _NMDedupMultiIndex *nm_netns_get_multi_idx(NMNetns *self);
static inline struct _NMDedupMultiIndex *
nm_l3cfg_get_multi_idx(const NML3Cfg *self)
{
g_return_val_if_fail(NM_IS_L3CFG(self), NULL);
return nm_netns_get_multi_idx(self->priv.netns);
}
@ -181,7 +183,7 @@ nm_l3cfg_get_multi_idx(const NML3Cfg *self)
static inline int
nm_l3cfg_get_ifindex(const NML3Cfg *self)
{
nm_assert(NM_IS_L3CFG(self));
g_return_val_if_fail(NM_IS_L3CFG(self), 0);
return self->priv.ifindex;
}