From 29b576bd70bf169e20ca4e6d2b05075957876de9 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Tue, 4 Oct 2016 16:32:09 +0200 Subject: [PATCH] proxy: cleanup handling of proxy-method The numeric value of NM_SETTING_PROXY_METHOD_NONE should be zero, as that is the more natural default. Also, cast all uses of the enum values in g_object_set() to (int). --- clients/cli/devices.c | 2 +- clients/cli/settings.c | 8 ++++---- libnm-core/nm-setting-proxy.c | 19 ++++++++++++++----- libnm-core/nm-setting-proxy.h | 8 ++++---- src/settings/plugins/ifcfg-rh/reader.c | 5 +++-- src/settings/plugins/ifcfg-rh/writer.c | 2 +- 6 files changed, 27 insertions(+), 17 deletions(-) diff --git a/clients/cli/devices.c b/clients/cli/devices.c index 5409452f36..f9d0f4ef4b 100644 --- a/clients/cli/devices.c +++ b/clients/cli/devices.c @@ -3482,7 +3482,7 @@ do_device_wifi_hotspot (NmCli *nmc, int argc, char **argv) s_proxy = (NMSettingProxy *) nm_setting_proxy_new (); nm_connection_add_setting (connection, NM_SETTING (s_proxy)); - g_object_set (s_proxy, NM_SETTING_PROXY_METHOD, NM_SETTING_PROXY_METHOD_NONE, NULL); + g_object_set (s_proxy, NM_SETTING_PROXY_METHOD, (int) NM_SETTING_PROXY_METHOD_NONE, NULL); /* Activate the connection now */ nmc->nowait_flag = (nmc->timeout == 0); diff --git a/clients/cli/settings.c b/clients/cli/settings.c index dd777b2b2b..9491b7f33f 100644 --- a/clients/cli/settings.c +++ b/clients/cli/settings.c @@ -2133,18 +2133,18 @@ static gboolean nmc_property_proxy_set_method (NMSetting *setting, const char *prop, const char *val, GError **error) { - NMSettingProxyMethod method; + int method; gboolean ret; ret = nm_utils_enum_from_str (nm_setting_proxy_method_get_type(), val, - (int *) &method, NULL); + &method, NULL); if (!ret) { gs_free const char **values = NULL; gs_free char *values_str = NULL; values = nm_utils_enum_get_values (nm_setting_proxy_method_get_type (), - NM_SETTING_PROXY_METHOD_AUTO, + NM_SETTING_PROXY_METHOD_NONE, G_MAXINT); values_str = g_strjoinv (",", (char **) values); g_set_error (error, 1, 0, _("invalid method '%s', use one of %s"), @@ -2559,7 +2559,7 @@ nmc_setting_custom_init (NMSetting *setting) NULL); } else if (NM_IS_SETTING_PROXY (setting)) { g_object_set (NM_SETTING_PROXY (setting), - NM_SETTING_PROXY_METHOD, NM_SETTING_PROXY_METHOD_NONE, + NM_SETTING_PROXY_METHOD, (int) NM_SETTING_PROXY_METHOD_NONE, NULL); } else if (NM_IS_SETTING_TUN (setting)) { g_object_set (NM_SETTING_TUN (setting), diff --git a/libnm-core/nm-setting-proxy.c b/libnm-core/nm-setting-proxy.c index 1cfd7cd491..2e4dca1e65 100644 --- a/libnm-core/nm-setting-proxy.c +++ b/libnm-core/nm-setting-proxy.c @@ -153,7 +153,19 @@ verify (NMSetting *setting, NMConnection *connection, GError **error) NMSettingProxyMethod method; method = priv->method; - if (method == NM_SETTING_PROXY_METHOD_NONE) { + + if (!NM_IN_SET (method, + NM_SETTING_PROXY_METHOD_NONE, + NM_SETTING_PROXY_METHOD_AUTO)) { + g_set_error (error, + NM_CONNECTION_ERROR, + NM_CONNECTION_ERROR_INVALID_PROPERTY, + _("invalid proxy method")); + g_prefix_error (error, "%s.%s: ", NM_SETTING_PROXY_SETTING_NAME, NM_SETTING_PROXY_PAC_URL); + return FALSE; + } + + if (method != NM_SETTING_PROXY_METHOD_AUTO) { if (priv->pac_url) { g_set_error (error, NM_CONNECTION_ERROR, @@ -188,9 +200,6 @@ verify (NMSetting *setting, NMConnection *connection, GError **error) static void nm_setting_proxy_init (NMSettingProxy *setting) { - NMSettingProxyPrivate *priv = NM_SETTING_PROXY_GET_PRIVATE (setting); - - priv->method = NM_SETTING_PROXY_METHOD_NONE; } static void @@ -207,7 +216,7 @@ finalize (GObject *object) static void get_property (GObject *object, guint prop_id, - GValue *value, GParamSpec *pspec) + GValue *value, GParamSpec *pspec) { NMSettingProxy *setting = NM_SETTING_PROXY (object); diff --git a/libnm-core/nm-setting-proxy.h b/libnm-core/nm-setting-proxy.h index c51359fb22..2009dfab98 100644 --- a/libnm-core/nm-setting-proxy.h +++ b/libnm-core/nm-setting-proxy.h @@ -32,16 +32,16 @@ G_BEGIN_DECLS /** * NMSettingProxyMethod: - * @NM_SETTING_PROXY_METHOD_AUTO: DHCP obtained Proxy/ Manual override - * @NM_SETTING_PROXY_METHOD_NONE: No Proxy for the Connection + * @NM_SETTING_PROXY_METHOD_NONE: No Proxy for the Connection + * @NM_SETTING_PROXY_METHOD_AUTO: DHCP obtained Proxy/ Manual override * * The Proxy method. * * Since: 1.6 */ typedef enum { - NM_SETTING_PROXY_METHOD_AUTO = 0, - NM_SETTING_PROXY_METHOD_NONE + NM_SETTING_PROXY_METHOD_NONE = 0, + NM_SETTING_PROXY_METHOD_AUTO = 1, } NMSettingProxyMethod; #define NM_TYPE_SETTING_PROXY (nm_setting_proxy_get_type ()) diff --git a/src/settings/plugins/ifcfg-rh/reader.c b/src/settings/plugins/ifcfg-rh/reader.c index bf15d32d29..dd7ea3cefa 100644 --- a/src/settings/plugins/ifcfg-rh/reader.c +++ b/src/settings/plugins/ifcfg-rh/reader.c @@ -922,7 +922,7 @@ make_proxy_setting (shvarFile *ifcfg, GError **error) switch (method) { case NM_SETTING_PROXY_METHOD_AUTO: g_object_set (s_proxy, - NM_SETTING_PROXY_METHOD, NM_SETTING_PROXY_METHOD_AUTO, + NM_SETTING_PROXY_METHOD, (int) NM_SETTING_PROXY_METHOD_AUTO, NULL); value = svGetValue (ifcfg, "PAC_URL", FALSE); @@ -942,8 +942,9 @@ make_proxy_setting (shvarFile *ifcfg, GError **error) break; case NM_SETTING_PROXY_METHOD_NONE: g_object_set (s_proxy, - NM_SETTING_PROXY_METHOD, NM_SETTING_PROXY_METHOD_NONE, + NM_SETTING_PROXY_METHOD, (int) NM_SETTING_PROXY_METHOD_NONE, NULL); + break; } value = svGetValue (ifcfg, "BROWSER_ONLY", FALSE); diff --git a/src/settings/plugins/ifcfg-rh/writer.c b/src/settings/plugins/ifcfg-rh/writer.c index 383337c77f..8dc4cbe2af 100644 --- a/src/settings/plugins/ifcfg-rh/writer.c +++ b/src/settings/plugins/ifcfg-rh/writer.c @@ -2030,7 +2030,7 @@ write_proxy_setting (NMConnection *connection, shvarFile *ifcfg, GError **error) break; case NM_SETTING_PROXY_METHOD_NONE: svSetValue (ifcfg, "PROXY_METHOD", "none", FALSE); - /* Write nothing more */ + break; } browser_only = nm_setting_proxy_get_browser_only (s_proxy);