From 772225f8cf0bbc3ad56e0d01b5dee1b413465489 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Sun, 21 May 2017 14:45:09 +0200 Subject: clients: implement ip-tunnel.mode property as enum --- clients/common/nm-meta-setting-desc.c | 57 ++++++----------------------------- 1 file changed, 9 insertions(+), 48 deletions(-) diff --git a/clients/common/nm-meta-setting-desc.c b/clients/common/nm-meta-setting-desc.c index f7c1da76aa..cba64c2c78 100644 --- a/clients/common/nm-meta-setting-desc.c +++ b/clients/common/nm-meta-setting-desc.c @@ -2933,45 +2933,6 @@ _get_fcn_infiniband_p_key (ARGS_GET_FCN) RETURN_STR_TO_FREE (g_strdup_printf ("0x%04x", p_key)); } -static gconstpointer -_get_fcn_ip_tunnel_mode (ARGS_GET_FCN) -{ - NMSettingIPTunnel *s_ip_tunnel = NM_SETTING_IP_TUNNEL (setting); - NMIPTunnelMode mode; - - RETURN_UNSUPPORTED_GET_TYPE (); - - mode = nm_setting_ip_tunnel_get_mode (s_ip_tunnel); - RETURN_STR_TO_FREE (nm_utils_enum_to_str (nm_ip_tunnel_mode_get_type (), mode)); -} - -static gboolean -_set_fcn_ip_tunnel_mode (ARGS_SET_FCN) -{ - NMIPTunnelMode mode; - gboolean ret; - - ret = nm_utils_enum_from_str (nm_ip_tunnel_mode_get_type(), value, - (int *) &mode, NULL); - - if (!ret) { - gs_free const char **values = NULL; - gs_free char *values_str = NULL; - - values = nm_utils_enum_get_values (nm_ip_tunnel_mode_get_type (), - NM_IP_TUNNEL_MODE_UNKNOWN + 1, - G_MAXINT); - values_str = g_strjoinv (",", (char **) values); - g_set_error (error, 1, 0, _("invalid mode '%s', use one of %s"), - value, values_str); - - return FALSE; - } - - g_object_set (setting, property_info->property_name, mode, NULL); - return TRUE; -} - static gconstpointer _get_fcn_ip_config_addresses (ARGS_GET_FCN) { @@ -5724,15 +5685,15 @@ static const NMMetaPropertyInfo *const property_infos_IP_TUNNEL[] = { .property_alias = "mode", .inf_flags = NM_META_PROPERTY_INF_FLAG_REQD, .prompt = NM_META_TEXT_PROMPT_IP_TUNNEL_MODE, - .property_type = DEFINE_PROPERTY_TYPE ( - .get_fcn = _get_fcn_ip_tunnel_mode, - .set_fcn = _set_fcn_ip_tunnel_mode, - .values_fcn = _values_fcn_gobject_enum, - ), - .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_enum, - .get_gtype = nm_ip_tunnel_mode_get_type, - .min = NM_IP_TUNNEL_MODE_UNKNOWN + 1, - .max = G_MAXINT, + .property_type = &_pt_gobject_enum, + .property_typ_data = DEFINE_PROPERTY_TYP_DATA ( + PROPERTY_TYP_DATA_SUBTYPE (gobject_enum, + .get_gtype = nm_ip_tunnel_mode_get_type, + .min = NM_IP_TUNNEL_MODE_UNKNOWN + 1, + .max = G_MAXINT, + ), + .typ_flags = NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PARSABLE_TEXT + | NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PRETTY_TEXT, ), ), PROPERTY_INFO_WITH_DESC (NM_SETTING_IP_TUNNEL_PARENT, -- cgit v1.2.1