mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-02-25 03:40:37 +01:00
libnm: support the CLAT state
Make available the CLAT state in the NMIPConfig libnm objects.
This commit is contained in:
parent
f00030d79a
commit
d1598a10ec
3 changed files with 99 additions and 3 deletions
|
|
@ -2106,6 +2106,8 @@ global:
|
|||
|
||||
libnm_1_58_0 {
|
||||
global:
|
||||
nm_ip_config_get_clat_address;
|
||||
nm_ip_config_get_clat_pref64;
|
||||
nm_setting_ip4_config_clat_get_type;
|
||||
nm_setting_ip4_config_get_clat;
|
||||
nm_utils_wifi_6ghz_freqs;
|
||||
|
|
|
|||
|
|
@ -26,7 +26,9 @@ NM_GOBJECT_PROPERTIES_DEFINE(NMIPConfig,
|
|||
PROP_NAMESERVERS,
|
||||
PROP_DOMAINS,
|
||||
PROP_SEARCHES,
|
||||
PROP_WINS_SERVERS, );
|
||||
PROP_WINS_SERVERS,
|
||||
PROP_CLAT_ADDRESS,
|
||||
PROP_CLAT_PREF64, );
|
||||
|
||||
typedef struct _NMIPConfigPrivate {
|
||||
GPtrArray *addresses;
|
||||
|
|
@ -36,6 +38,8 @@ typedef struct _NMIPConfigPrivate {
|
|||
char **searches;
|
||||
char **wins_servers;
|
||||
char *gateway;
|
||||
char *clat_address;
|
||||
char *clat_pref64;
|
||||
|
||||
bool addresses_new_style : 1;
|
||||
bool routes_new_style : 1;
|
||||
|
|
@ -256,6 +260,12 @@ get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
|
|||
case PROP_GATEWAY:
|
||||
g_value_set_string(value, nm_ip_config_get_gateway(self));
|
||||
break;
|
||||
case PROP_CLAT_ADDRESS:
|
||||
g_value_set_string(value, nm_ip_config_get_clat_address(self));
|
||||
break;
|
||||
case PROP_CLAT_PREF64:
|
||||
g_value_set_string(value, nm_ip_config_get_clat_pref64(self));
|
||||
break;
|
||||
case PROP_ADDRESSES:
|
||||
g_value_take_boxed(value,
|
||||
_nm_utils_copy_array(nm_ip_config_get_addresses(self),
|
||||
|
|
@ -307,6 +317,8 @@ finalize(GObject *object)
|
|||
NMIPConfigPrivate *priv = NM_IP_CONFIG_GET_PRIVATE(object);
|
||||
|
||||
g_free(priv->gateway);
|
||||
g_free(priv->clat_address);
|
||||
g_free(priv->clat_pref64);
|
||||
|
||||
g_ptr_array_unref(priv->routes);
|
||||
g_ptr_array_unref(priv->addresses);
|
||||
|
|
@ -333,6 +345,10 @@ const NMLDBusMetaIface _nml_dbus_meta_iface_nm_ip4config = NML_DBUS_META_IFACE_I
|
|||
"aau",
|
||||
_notify_update_prop_addresses,
|
||||
.obj_property_no_reverse_idx = TRUE),
|
||||
NML_DBUS_META_PROPERTY_INIT_S("ClatAddress",
|
||||
PROP_CLAT_ADDRESS,
|
||||
NMIPConfigPrivate,
|
||||
clat_address),
|
||||
NML_DBUS_META_PROPERTY_INIT_TODO("DnsOptions", "as"),
|
||||
NML_DBUS_META_PROPERTY_INIT_TODO("DnsPriority", "i"),
|
||||
NML_DBUS_META_PROPERTY_INIT_AS("Domains", PROP_DOMAINS, NMIPConfigPrivate, domains),
|
||||
|
|
@ -381,6 +397,14 @@ const NMLDBusMetaIface _nml_dbus_meta_iface_nm_ip6config = NML_DBUS_META_IFACE_I
|
|||
"a(ayuay)",
|
||||
_notify_update_prop_addresses,
|
||||
.obj_property_no_reverse_idx = TRUE),
|
||||
NML_DBUS_META_PROPERTY_INIT_S("ClatAddress",
|
||||
PROP_CLAT_ADDRESS,
|
||||
NMIPConfigPrivate,
|
||||
clat_address),
|
||||
NML_DBUS_META_PROPERTY_INIT_S("ClatPref64",
|
||||
PROP_CLAT_PREF64,
|
||||
NMIPConfigPrivate,
|
||||
clat_pref64),
|
||||
NML_DBUS_META_PROPERTY_INIT_TODO("DnsOptions", "as"),
|
||||
NML_DBUS_META_PROPERTY_INIT_TODO("DnsPriority", "i"),
|
||||
NML_DBUS_META_PROPERTY_INIT_AS("Domains", PROP_DOMAINS, NMIPConfigPrivate, domains),
|
||||
|
|
@ -436,6 +460,34 @@ nm_ip_config_class_init(NMIPConfigClass *config_class)
|
|||
NULL,
|
||||
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
|
||||
|
||||
/**
|
||||
* NMIPConfig:clat-address:
|
||||
*
|
||||
* The IP address used by CLAT.
|
||||
*
|
||||
* Since: 1.58
|
||||
**/
|
||||
obj_properties[PROP_CLAT_ADDRESS] =
|
||||
g_param_spec_string(NM_IP_CONFIG_CLAT_ADDRESS,
|
||||
"",
|
||||
"",
|
||||
NULL,
|
||||
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
|
||||
|
||||
/**
|
||||
* NMIPConfig:clat-pref64:
|
||||
*
|
||||
* The NAT64 prefix used by CLAT.
|
||||
*
|
||||
* Since: 1.58
|
||||
**/
|
||||
obj_properties[PROP_CLAT_PREF64] =
|
||||
g_param_spec_string(NM_IP_CONFIG_CLAT_PREF64,
|
||||
"",
|
||||
"",
|
||||
NULL,
|
||||
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
|
||||
|
||||
/**
|
||||
* NMIPConfig:addresses:
|
||||
*
|
||||
|
|
@ -543,6 +595,42 @@ nm_ip_config_get_gateway(NMIPConfig *config)
|
|||
return _nml_coerce_property_str_not_empty(NM_IP_CONFIG_GET_PRIVATE(config)->gateway);
|
||||
}
|
||||
|
||||
/**
|
||||
* nm_ip_config_get_clat_address:
|
||||
* @config: a #NMIPConfig
|
||||
*
|
||||
* Gets the CLAT IP address.
|
||||
*
|
||||
* Returns: (transfer none): the CLAT IP address.
|
||||
*
|
||||
* Since: 1.58
|
||||
**/
|
||||
const char *
|
||||
nm_ip_config_get_clat_address(NMIPConfig *config)
|
||||
{
|
||||
g_return_val_if_fail(NM_IS_IP_CONFIG(config), NULL);
|
||||
|
||||
return _nml_coerce_property_str_not_empty(NM_IP_CONFIG_GET_PRIVATE(config)->clat_address);
|
||||
}
|
||||
|
||||
/**
|
||||
* nm_ip_config_get_clat_pref64:
|
||||
* @config: a #NMIPConfig
|
||||
*
|
||||
* Gets the NAT64 prefix used by CLAT.
|
||||
*
|
||||
* Returns: (transfer none): the NAT64 prefix.
|
||||
*
|
||||
* Since: 1.58
|
||||
**/
|
||||
const char *
|
||||
nm_ip_config_get_clat_pref64(NMIPConfig *config)
|
||||
{
|
||||
g_return_val_if_fail(NM_IS_IP_CONFIG(config), NULL);
|
||||
|
||||
return _nml_coerce_property_str_not_empty(NM_IP_CONFIG_GET_PRIVATE(config)->clat_pref64);
|
||||
}
|
||||
|
||||
/**
|
||||
* nm_ip_config_get_addresses:
|
||||
* @config: a #NMIPConfig
|
||||
|
|
|
|||
|
|
@ -38,11 +38,17 @@ typedef struct _NMIPConfigClass NMIPConfigClass;
|
|||
#define NM_IP_CONFIG_DOMAINS "domains"
|
||||
#define NM_IP_CONFIG_SEARCHES "searches"
|
||||
#define NM_IP_CONFIG_WINS_SERVERS "wins-servers"
|
||||
#define NM_IP_CONFIG_CLAT_ADDRESS "clat-address"
|
||||
#define NM_IP_CONFIG_CLAT_PREF64 "clat-pref64"
|
||||
|
||||
GType nm_ip_config_get_type(void);
|
||||
|
||||
int nm_ip_config_get_family(NMIPConfig *config);
|
||||
const char *nm_ip_config_get_gateway(NMIPConfig *config);
|
||||
int nm_ip_config_get_family(NMIPConfig *config);
|
||||
const char *nm_ip_config_get_gateway(NMIPConfig *config);
|
||||
NM_AVAILABLE_IN_1_58
|
||||
const char *nm_ip_config_get_clat_address(NMIPConfig *config);
|
||||
NM_AVAILABLE_IN_1_58
|
||||
const char *nm_ip_config_get_clat_pref64(NMIPConfig *config);
|
||||
GPtrArray *nm_ip_config_get_addresses(NMIPConfig *config);
|
||||
GPtrArray *nm_ip_config_get_routes(NMIPConfig *config);
|
||||
const char *const *nm_ip_config_get_nameservers(NMIPConfig *config);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue