mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2025-12-25 14:10:08 +01:00
cli: move information about valid connection settings to common
This commit is contained in:
parent
3ed0fc1b45
commit
d32817999c
6 changed files with 524 additions and 480 deletions
File diff suppressed because it is too large
Load diff
|
|
@ -24,26 +24,31 @@
|
|||
/*****************************************************************************/
|
||||
|
||||
const NMMetaSettingInfoEditor *
|
||||
nm_meta_setting_info_editor_find_by_name (const char *setting_name)
|
||||
nm_meta_setting_info_editor_find_by_name (const char *setting_name, gboolean use_alias)
|
||||
{
|
||||
const NMMetaSettingInfo *meta_setting_info;
|
||||
const NMMetaSettingInfoEditor *setting_info;
|
||||
guint i;
|
||||
|
||||
g_return_val_if_fail (setting_name, NULL);
|
||||
|
||||
meta_setting_info = nm_meta_setting_infos_by_name (setting_name);
|
||||
|
||||
if (!meta_setting_info)
|
||||
return NULL;
|
||||
|
||||
g_return_val_if_fail (nm_streq0 (meta_setting_info->setting_name, setting_name), NULL);
|
||||
|
||||
if (meta_setting_info->meta_type >= G_N_ELEMENTS (nm_meta_setting_infos_editor))
|
||||
return NULL;
|
||||
|
||||
setting_info = &nm_meta_setting_infos_editor[meta_setting_info->meta_type];
|
||||
|
||||
g_return_val_if_fail (setting_info->general == meta_setting_info, NULL);
|
||||
setting_info = NULL;
|
||||
if (meta_setting_info) {
|
||||
nm_assert (nm_streq0 (meta_setting_info->setting_name, setting_name));
|
||||
if (meta_setting_info->meta_type < G_N_ELEMENTS (nm_meta_setting_infos_editor)) {
|
||||
setting_info = &nm_meta_setting_infos_editor[meta_setting_info->meta_type];
|
||||
nm_assert (setting_info->general == meta_setting_info);
|
||||
}
|
||||
}
|
||||
if (!setting_info && use_alias) {
|
||||
for (i = 0; i < _NM_META_SETTING_TYPE_NUM; i++) {
|
||||
if (nm_streq0 (nm_meta_setting_infos_editor[i].alias, setting_name)) {
|
||||
setting_info = &nm_meta_setting_infos_editor[i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return setting_info;
|
||||
}
|
||||
|
|
@ -81,7 +86,7 @@ nm_meta_setting_info_editor_find_by_setting (NMSetting *setting)
|
|||
|
||||
setting_info = nm_meta_setting_info_editor_find_by_gtype (G_OBJECT_TYPE (setting));
|
||||
|
||||
nm_assert (setting_info == nm_meta_setting_info_editor_find_by_name (nm_setting_get_name (setting)));
|
||||
nm_assert (setting_info == nm_meta_setting_info_editor_find_by_name (nm_setting_get_name (setting), FALSE));
|
||||
nm_assert (!setting_info || G_TYPE_CHECK_INSTANCE_TYPE (setting, setting_info->general->get_setting_gtype ()));
|
||||
|
||||
return setting_info;
|
||||
|
|
@ -111,7 +116,7 @@ nm_meta_property_info_find_by_name (const char *setting_name, const char *proper
|
|||
const NMMetaSettingInfoEditor *setting_info;
|
||||
const NMMetaPropertyInfo *property_info;
|
||||
|
||||
setting_info = nm_meta_setting_info_editor_find_by_name (setting_name);
|
||||
setting_info = nm_meta_setting_info_editor_find_by_name (setting_name, FALSE);
|
||||
if (!setting_info)
|
||||
return NULL;
|
||||
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@
|
|||
|
||||
/*****************************************************************************/
|
||||
|
||||
const NMMetaSettingInfoEditor *nm_meta_setting_info_editor_find_by_name (const char *setting_name);
|
||||
const NMMetaSettingInfoEditor *nm_meta_setting_info_editor_find_by_name (const char *setting_name, gboolean use_alias);
|
||||
const NMMetaSettingInfoEditor *nm_meta_setting_info_editor_find_by_gtype (GType gtype);
|
||||
const NMMetaSettingInfoEditor *nm_meta_setting_info_editor_find_by_setting (NMSetting *setting);
|
||||
|
||||
|
|
|
|||
|
|
@ -7112,12 +7112,22 @@ static const NMMetaPropertyInfo property_infos_WIRELESS_SECURITY[] = {
|
|||
#define SETTING_PRETTY_NAME_WIRELESS "Wi-Fi connection"
|
||||
#define SETTING_PRETTY_NAME_WIRELESS_SECURITY "Wi-Fi security settings"
|
||||
|
||||
#define NM_META_SETTING_VALID_PARTS(...) \
|
||||
((const NMMetaSettingValidPartItem *const[]) { __VA_ARGS__ NULL })
|
||||
|
||||
#define NM_META_SETTING_VALID_PART_ITEM(type, mand) \
|
||||
(&((const NMMetaSettingValidPartItem) { \
|
||||
.setting_info = &nm_meta_setting_infos_editor[NM_META_SETTING_TYPE_##type], \
|
||||
.mandatory = mand, \
|
||||
}))
|
||||
|
||||
const NMMetaSettingInfoEditor nm_meta_setting_infos_editor[] = {
|
||||
#define SETTING_INFO_EMPTY(type) \
|
||||
#define SETTING_INFO_EMPTY(type, ...) \
|
||||
[NM_META_SETTING_TYPE_##type] = { \
|
||||
.meta_type = &nm_meta_type_setting_info_editor, \
|
||||
.general = &nm_meta_setting_infos[NM_META_SETTING_TYPE_##type], \
|
||||
.pretty_name = N_(SETTING_PRETTY_NAME_##type), \
|
||||
__VA_ARGS__ \
|
||||
}
|
||||
#define SETTING_INFO(type, ...) \
|
||||
[NM_META_SETTING_TYPE_##type] = { \
|
||||
|
|
@ -7129,43 +7139,174 @@ const NMMetaSettingInfoEditor nm_meta_setting_infos_editor[] = {
|
|||
__VA_ARGS__ \
|
||||
}
|
||||
SETTING_INFO (802_1X),
|
||||
SETTING_INFO (ADSL),
|
||||
SETTING_INFO (BLUETOOTH),
|
||||
SETTING_INFO (BOND),
|
||||
SETTING_INFO (BRIDGE),
|
||||
SETTING_INFO (ADSL,
|
||||
.valid_parts = NM_META_SETTING_VALID_PARTS (
|
||||
NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE),
|
||||
NM_META_SETTING_VALID_PART_ITEM (ADSL, TRUE),
|
||||
),
|
||||
),
|
||||
SETTING_INFO (BLUETOOTH,
|
||||
.valid_parts = NM_META_SETTING_VALID_PARTS (
|
||||
NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE),
|
||||
NM_META_SETTING_VALID_PART_ITEM (BLUETOOTH, TRUE),
|
||||
),
|
||||
),
|
||||
SETTING_INFO (BOND,
|
||||
.valid_parts = NM_META_SETTING_VALID_PARTS (
|
||||
NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE),
|
||||
NM_META_SETTING_VALID_PART_ITEM (BOND, TRUE),
|
||||
NM_META_SETTING_VALID_PART_ITEM (WIRED, FALSE),
|
||||
),
|
||||
),
|
||||
SETTING_INFO (BRIDGE,
|
||||
.valid_parts = NM_META_SETTING_VALID_PARTS (
|
||||
NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE),
|
||||
NM_META_SETTING_VALID_PART_ITEM (BRIDGE, TRUE),
|
||||
NM_META_SETTING_VALID_PART_ITEM (WIRED, FALSE),
|
||||
),
|
||||
),
|
||||
SETTING_INFO (BRIDGE_PORT),
|
||||
SETTING_INFO (CDMA),
|
||||
SETTING_INFO (CDMA,
|
||||
.valid_parts = NM_META_SETTING_VALID_PARTS (
|
||||
NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE),
|
||||
NM_META_SETTING_VALID_PART_ITEM (CDMA, TRUE),
|
||||
NM_META_SETTING_VALID_PART_ITEM (SERIAL, FALSE),
|
||||
NM_META_SETTING_VALID_PART_ITEM (PPP, FALSE),
|
||||
),
|
||||
),
|
||||
SETTING_INFO (CONNECTION),
|
||||
SETTING_INFO (DCB),
|
||||
SETTING_INFO_EMPTY (DUMMY),
|
||||
SETTING_INFO_EMPTY (GENERIC),
|
||||
SETTING_INFO (GSM),
|
||||
SETTING_INFO (INFINIBAND),
|
||||
SETTING_INFO_EMPTY (DUMMY,
|
||||
.valid_parts = NM_META_SETTING_VALID_PARTS (
|
||||
NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE),
|
||||
NM_META_SETTING_VALID_PART_ITEM (DUMMY, TRUE),
|
||||
NM_META_SETTING_VALID_PART_ITEM (WIRED, FALSE),
|
||||
),
|
||||
),
|
||||
SETTING_INFO_EMPTY (GENERIC,
|
||||
.valid_parts = NM_META_SETTING_VALID_PARTS (
|
||||
NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE),
|
||||
NM_META_SETTING_VALID_PART_ITEM (GENERIC, TRUE),
|
||||
),
|
||||
),
|
||||
SETTING_INFO (GSM,
|
||||
.valid_parts = NM_META_SETTING_VALID_PARTS (
|
||||
NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE),
|
||||
NM_META_SETTING_VALID_PART_ITEM (GSM, TRUE),
|
||||
NM_META_SETTING_VALID_PART_ITEM (SERIAL, FALSE),
|
||||
NM_META_SETTING_VALID_PART_ITEM (PPP, FALSE),
|
||||
),
|
||||
),
|
||||
SETTING_INFO (INFINIBAND,
|
||||
.valid_parts = NM_META_SETTING_VALID_PARTS (
|
||||
NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE),
|
||||
NM_META_SETTING_VALID_PART_ITEM (INFINIBAND, TRUE),
|
||||
),
|
||||
),
|
||||
SETTING_INFO (IP4_CONFIG),
|
||||
SETTING_INFO (IP6_CONFIG),
|
||||
SETTING_INFO (IP_TUNNEL),
|
||||
SETTING_INFO (MACSEC),
|
||||
SETTING_INFO (MACVLAN),
|
||||
SETTING_INFO (IP_TUNNEL,
|
||||
.valid_parts = NM_META_SETTING_VALID_PARTS (
|
||||
NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE),
|
||||
NM_META_SETTING_VALID_PART_ITEM (IP_TUNNEL, TRUE),
|
||||
),
|
||||
),
|
||||
SETTING_INFO (MACSEC,
|
||||
.valid_parts = NM_META_SETTING_VALID_PARTS (
|
||||
NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE),
|
||||
NM_META_SETTING_VALID_PART_ITEM (MACSEC, TRUE),
|
||||
NM_META_SETTING_VALID_PART_ITEM (WIRED, FALSE),
|
||||
NM_META_SETTING_VALID_PART_ITEM (802_1X, FALSE),
|
||||
),
|
||||
),
|
||||
SETTING_INFO (MACVLAN,
|
||||
.valid_parts = NM_META_SETTING_VALID_PARTS (
|
||||
NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE),
|
||||
NM_META_SETTING_VALID_PART_ITEM (MACVLAN, TRUE),
|
||||
NM_META_SETTING_VALID_PART_ITEM (WIRED, FALSE),
|
||||
),
|
||||
),
|
||||
SETTING_INFO (OLPC_MESH,
|
||||
.alias = "olpc-mesh",
|
||||
.valid_parts = NM_META_SETTING_VALID_PARTS (
|
||||
NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE),
|
||||
NM_META_SETTING_VALID_PART_ITEM (OLPC_MESH, TRUE),
|
||||
),
|
||||
),
|
||||
SETTING_INFO (PPPOE,
|
||||
/* PPPoE is a base connection type from historical reasons.
|
||||
* See libnm-core/nm-setting.c:_nm_setting_is_base_type()
|
||||
*/
|
||||
.valid_parts = NM_META_SETTING_VALID_PARTS (
|
||||
NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE),
|
||||
NM_META_SETTING_VALID_PART_ITEM (PPPOE, TRUE),
|
||||
NM_META_SETTING_VALID_PART_ITEM (WIRED, TRUE),
|
||||
NM_META_SETTING_VALID_PART_ITEM (PPP, FALSE),
|
||||
NM_META_SETTING_VALID_PART_ITEM (802_1X, FALSE),
|
||||
),
|
||||
),
|
||||
SETTING_INFO (PPPOE),
|
||||
SETTING_INFO (PPP),
|
||||
SETTING_INFO (PROXY),
|
||||
SETTING_INFO (SERIAL),
|
||||
SETTING_INFO (TEAM),
|
||||
SETTING_INFO (TEAM,
|
||||
.valid_parts = NM_META_SETTING_VALID_PARTS (
|
||||
NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE),
|
||||
NM_META_SETTING_VALID_PART_ITEM (TEAM, TRUE),
|
||||
NM_META_SETTING_VALID_PART_ITEM (WIRED, FALSE),
|
||||
),
|
||||
),
|
||||
SETTING_INFO (TEAM_PORT),
|
||||
SETTING_INFO (TUN),
|
||||
SETTING_INFO (TUN,
|
||||
.valid_parts = NM_META_SETTING_VALID_PARTS (
|
||||
NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE),
|
||||
NM_META_SETTING_VALID_PART_ITEM (TUN, TRUE),
|
||||
NM_META_SETTING_VALID_PART_ITEM (WIRED, FALSE),
|
||||
),
|
||||
),
|
||||
SETTING_INFO_EMPTY (USER),
|
||||
SETTING_INFO (VLAN),
|
||||
SETTING_INFO (VPN),
|
||||
SETTING_INFO (VXLAN),
|
||||
SETTING_INFO (WIMAX),
|
||||
SETTING_INFO (VLAN,
|
||||
.valid_parts = NM_META_SETTING_VALID_PARTS (
|
||||
NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE),
|
||||
NM_META_SETTING_VALID_PART_ITEM (VLAN, TRUE),
|
||||
NM_META_SETTING_VALID_PART_ITEM (WIRED, FALSE),
|
||||
),
|
||||
),
|
||||
SETTING_INFO (VPN,
|
||||
.valid_parts = NM_META_SETTING_VALID_PARTS (
|
||||
NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE),
|
||||
NM_META_SETTING_VALID_PART_ITEM (VPN, TRUE),
|
||||
),
|
||||
),
|
||||
SETTING_INFO (VXLAN,
|
||||
.valid_parts = NM_META_SETTING_VALID_PARTS (
|
||||
NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE),
|
||||
NM_META_SETTING_VALID_PART_ITEM (VXLAN, TRUE),
|
||||
NM_META_SETTING_VALID_PART_ITEM (WIRED, FALSE),
|
||||
),
|
||||
),
|
||||
SETTING_INFO (WIMAX,
|
||||
.valid_parts = NM_META_SETTING_VALID_PARTS (
|
||||
NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE),
|
||||
NM_META_SETTING_VALID_PART_ITEM (WIMAX, TRUE),
|
||||
),
|
||||
),
|
||||
SETTING_INFO (WIRED,
|
||||
.alias = "ethernet",
|
||||
.valid_parts = NM_META_SETTING_VALID_PARTS (
|
||||
NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE),
|
||||
NM_META_SETTING_VALID_PART_ITEM (WIRED, TRUE),
|
||||
NM_META_SETTING_VALID_PART_ITEM (802_1X, FALSE),
|
||||
NM_META_SETTING_VALID_PART_ITEM (DCB, FALSE),
|
||||
),
|
||||
),
|
||||
SETTING_INFO (WIRELESS,
|
||||
.alias = "wifi",
|
||||
.valid_parts = NM_META_SETTING_VALID_PARTS (
|
||||
NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE),
|
||||
NM_META_SETTING_VALID_PART_ITEM (WIRELESS, TRUE),
|
||||
NM_META_SETTING_VALID_PART_ITEM (WIRELESS_SECURITY, FALSE),
|
||||
NM_META_SETTING_VALID_PART_ITEM (802_1X, FALSE),
|
||||
),
|
||||
),
|
||||
SETTING_INFO (WIRELESS_SECURITY,
|
||||
.alias = "wifi-sec",
|
||||
|
|
@ -7174,6 +7315,54 @@ const NMMetaSettingInfoEditor nm_meta_setting_infos_editor[] = {
|
|||
|
||||
/*****************************************************************************/
|
||||
|
||||
const NMMetaSettingValidPartItem *const nm_meta_setting_info_valid_parts_default[] = {
|
||||
NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE),
|
||||
NULL
|
||||
};
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
static const NMMetaSettingValidPartItem *const valid_settings_noslave[] = {
|
||||
NM_META_SETTING_VALID_PART_ITEM (IP4_CONFIG, FALSE),
|
||||
NM_META_SETTING_VALID_PART_ITEM (IP6_CONFIG, FALSE),
|
||||
NM_META_SETTING_VALID_PART_ITEM (PROXY, FALSE),
|
||||
NULL,
|
||||
};
|
||||
|
||||
static const NMMetaSettingValidPartItem *const valid_settings_slave_bridge[] = {
|
||||
NM_META_SETTING_VALID_PART_ITEM (BRIDGE_PORT, TRUE),
|
||||
NULL,
|
||||
};
|
||||
|
||||
static const NMMetaSettingValidPartItem *const valid_settings_slave_team[] = {
|
||||
NM_META_SETTING_VALID_PART_ITEM (TEAM_PORT, TRUE),
|
||||
NULL,
|
||||
};
|
||||
|
||||
const NMMetaSettingValidPartItem *const*
|
||||
nm_meta_setting_info_valid_parts_for_slave_type (const char *slave_type, const char **out_slave_name)
|
||||
{
|
||||
if (!slave_type) {
|
||||
NM_SET_OUT (out_slave_name, NULL);
|
||||
return valid_settings_noslave;
|
||||
}
|
||||
if (nm_streq (slave_type, NM_SETTING_BOND_SETTING_NAME)) {
|
||||
NM_SET_OUT (out_slave_name, "bond-slave");
|
||||
return NM_PTRARRAY_EMPTY (const NMMetaSettingValidPartItem *);
|
||||
}
|
||||
if (nm_streq (slave_type, NM_SETTING_BRIDGE_SETTING_NAME)) {
|
||||
NM_SET_OUT (out_slave_name, "bridge-slave");
|
||||
return valid_settings_slave_bridge;
|
||||
}
|
||||
if (nm_streq (slave_type, NM_SETTING_TEAM_SETTING_NAME)) {
|
||||
NM_SET_OUT (out_slave_name, "team-slave");
|
||||
return valid_settings_slave_team;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
static const char *
|
||||
_meta_type_setting_info_editor_get_name (const NMMetaAbstractInfo *abstract_info, gboolean for_header)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -269,6 +269,11 @@ struct _NMMetaPropertyInfo {
|
|||
const NMMetaPropertyTypData *property_typ_data;
|
||||
};
|
||||
|
||||
typedef struct _NMMetaSettingValidPartItem {
|
||||
const NMMetaSettingInfoEditor *setting_info;
|
||||
bool mandatory;
|
||||
} NMMetaSettingValidPartItem;
|
||||
|
||||
struct _NMMetaSettingInfoEditor {
|
||||
const NMMetaType *meta_type;
|
||||
const NMMetaSettingInfo *general;
|
||||
|
|
@ -278,6 +283,18 @@ struct _NMMetaSettingInfoEditor {
|
|||
* "name", and then the order is as they are listed by default. */
|
||||
const NMMetaPropertyInfo *properties;
|
||||
guint properties_num;
|
||||
|
||||
/* a NMConnection has a main type (connection.type), which is a
|
||||
* main NMSetting instance. Depending on the type, a connection
|
||||
* may have a list of other allowed settings.
|
||||
*
|
||||
* For example, a connection of type "vlan" may have settings
|
||||
* of type "connection", "vlan", and "wired".
|
||||
*
|
||||
* Some setting types a not a main type (NMSettingProxy). They
|
||||
* don't have valid_settings but are usually referenced by other
|
||||
* settings to be valid for them. */
|
||||
const NMMetaSettingValidPartItem *const*valid_parts;
|
||||
};
|
||||
|
||||
struct _NMMetaType {
|
||||
|
|
@ -309,6 +326,10 @@ extern const NMMetaType nm_meta_type_property_info;
|
|||
|
||||
extern const NMMetaSettingInfoEditor nm_meta_setting_infos_editor[_NM_META_SETTING_TYPE_NUM];
|
||||
|
||||
extern const NMMetaSettingValidPartItem *const nm_meta_setting_info_valid_parts_default[];
|
||||
|
||||
const NMMetaSettingValidPartItem *const*nm_meta_setting_info_valid_parts_for_slave_type (const char *slave_type, const char **out_slave_name);
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
typedef enum {
|
||||
|
|
|
|||
|
|
@ -95,6 +95,29 @@ test_client_meta_check (void)
|
|||
}
|
||||
} else
|
||||
g_assert (!info->properties);
|
||||
|
||||
if (info->valid_parts) {
|
||||
gsize i, l;
|
||||
gs_unref_hashtable GHashTable *dup = g_hash_table_new (NULL, NULL);
|
||||
|
||||
l = NM_PTRARRAY_LEN (info->valid_parts);
|
||||
g_assert (l >= 2);
|
||||
|
||||
for (i = 0; info->valid_parts[i]; i++) {
|
||||
g_assert (info->valid_parts[i]->setting_info);
|
||||
g_assert (nm_g_hash_table_add (dup, (gpointer) info->valid_parts[i]->setting_info));
|
||||
|
||||
if (i == 0) {
|
||||
g_assert (info->valid_parts[i]->setting_info == &nm_meta_setting_infos_editor[NM_META_SETTING_TYPE_CONNECTION]);
|
||||
g_assert (info->valid_parts[i]->mandatory);
|
||||
}
|
||||
if (i == 1) {
|
||||
g_assert (info->valid_parts[i]->setting_info == &nm_meta_setting_infos_editor[m]);
|
||||
g_assert (info->valid_parts[i]->mandatory);
|
||||
}
|
||||
}
|
||||
g_assert (i == l);
|
||||
}
|
||||
}
|
||||
|
||||
for (m = 0; m < _NM_META_SETTING_TYPE_NUM; m++) {
|
||||
|
|
@ -112,7 +135,7 @@ test_client_meta_check (void)
|
|||
for (m = 0; m < _NM_META_SETTING_TYPE_NUM; m++) {
|
||||
const NMMetaSettingInfoEditor *info = &nm_meta_setting_infos_editor[m];
|
||||
|
||||
g_assert (nm_meta_setting_info_editor_find_by_name (info->general->setting_name) == info);
|
||||
g_assert (nm_meta_setting_info_editor_find_by_name (info->general->setting_name, FALSE) == info);
|
||||
g_assert (nm_meta_setting_info_editor_find_by_gtype (info->general->get_setting_gtype ()) == info);
|
||||
|
||||
for (p = 0; p < info->properties_num; p++) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue