diff --git a/src/platform/nm-platform.c b/src/platform/nm-platform.c index 3bb44e1ab..0b8caa761 100644 --- a/src/platform/nm-platform.c +++ b/src/platform/nm-platform.c @@ -181,39 +181,25 @@ nm_platform_try_get (void) /******************************************************************/ /** - * nm_platform_error_to_string: + * _nm_platform_error_to_string: * @error_code: the error code to stringify. * * Returns: A string representation of the error. * For negative numbers, this function interprets * the code as -errno. + * For invalid (positive) numbers it returns NULL. */ -const char * -nm_platform_error_to_string (NMPlatformError error) -{ - switch (error) { - case NM_PLATFORM_ERROR_SUCCESS: - return "success"; - case NM_PLATFORM_ERROR_BUG: - return "bug"; - case NM_PLATFORM_ERROR_UNSPECIFIED: - return "unspecified"; - case NM_PLATFORM_ERROR_NOT_FOUND: - return "not-found"; - case NM_PLATFORM_ERROR_EXISTS: - return "exists"; - case NM_PLATFORM_ERROR_WRONG_TYPE: - return "wrong-type"; - case NM_PLATFORM_ERROR_NOT_SLAVE: - return "not-slave"; - case NM_PLATFORM_ERROR_NO_FIRMWARE: - return "no-firmware"; - default: - if (error < 0) - return g_strerror (- ((int) error)); - return "unknown"; - } -} +NM_UTILS_LOOKUP_STR_DEFINE (_nm_platform_error_to_string, NMPlatformError, + ( val < 0 ? g_strerror (- ((int) val)) : NULL ), + NM_UTILS_LOOKUP_STR_ITEM (NM_PLATFORM_ERROR_SUCCESS, "success"), + NM_UTILS_LOOKUP_STR_ITEM (NM_PLATFORM_ERROR_BUG, "bug"), + NM_UTILS_LOOKUP_STR_ITEM (NM_PLATFORM_ERROR_UNSPECIFIED, "unspecified"), + NM_UTILS_LOOKUP_STR_ITEM (NM_PLATFORM_ERROR_NOT_FOUND, "not-found"), + NM_UTILS_LOOKUP_STR_ITEM (NM_PLATFORM_ERROR_EXISTS, "exists"), + NM_UTILS_LOOKUP_STR_ITEM (NM_PLATFORM_ERROR_WRONG_TYPE, "wrong-type"), + NM_UTILS_LOOKUP_STR_ITEM (NM_PLATFORM_ERROR_NOT_SLAVE, "not-slave"), + NM_UTILS_LOOKUP_STR_ITEM (NM_PLATFORM_ERROR_NO_FIRMWARE, "no-firmware"), +); /******************************************************************/ diff --git a/src/platform/nm-platform.h b/src/platform/nm-platform.h index 8ac129a0d..5f134d8a3 100644 --- a/src/platform/nm-platform.h +++ b/src/platform/nm-platform.h @@ -666,7 +666,8 @@ _nm_platform_uint8_inv (guint8 scope) const char *nm_link_type_to_string (NMLinkType link_type); -const char *nm_platform_error_to_string (NMPlatformError error); +const char *_nm_platform_error_to_string (NMPlatformError error); +#define nm_platform_error_to_string(error) NM_UTILS_LOOKUP_STR (_nm_platform_error_to_string, error) gboolean nm_platform_sysctl_set (NMPlatform *self, const char *path, const char *value); char *nm_platform_sysctl_get (NMPlatform *self, const char *path); diff --git a/src/vpn-manager/nm-vpn-connection.c b/src/vpn-manager/nm-vpn-connection.c index c548c9fa5..3e215e52e 100644 --- a/src/vpn-manager/nm-vpn-connection.c +++ b/src/vpn-manager/nm-vpn-connection.c @@ -767,21 +767,13 @@ nm_vpn_connection_get_service (NMVpnConnection *self) return nm_setting_vpn_get_service_type (s_vpn); } -static const char * -vpn_plugin_failure_to_string (NMVpnPluginFailure failure) -{ - switch (failure) { - case NM_VPN_PLUGIN_FAILURE_LOGIN_FAILED: - return "login-failed"; - case NM_VPN_PLUGIN_FAILURE_CONNECT_FAILED: - return "connect-failed"; - case NM_VPN_PLUGIN_FAILURE_BAD_IP_CONFIG: - return "bad-ip-config"; - default: - break; - } - return "unknown"; -} +NM_UTILS_LOOKUP_STR_DEFINE_STATIC (_vpn_plugin_failure_to_string, NMVpnPluginFailure, + NULL, + NM_UTILS_LOOKUP_STR_ITEM (NM_VPN_PLUGIN_FAILURE_LOGIN_FAILED, "login-failed"), + NM_UTILS_LOOKUP_STR_ITEM (NM_VPN_PLUGIN_FAILURE_CONNECT_FAILED, "connect-failed"), + NM_UTILS_LOOKUP_STR_ITEM (NM_VPN_PLUGIN_FAILURE_BAD_IP_CONFIG, "bad-ip-config"), +); +#define vpn_plugin_failure_to_string(failure) NM_UTILS_LOOKUP_STR (_vpn_plugin_failure_to_string, failure) static void plugin_failed (NMVpnConnection *self, guint reason) @@ -803,81 +795,48 @@ plugin_failed (NMVpnConnection *self, guint reason) } } -static const char * -vpn_service_state_to_string (NMVpnServiceState state) -{ - switch (state) { - case NM_VPN_SERVICE_STATE_INIT: - return "init"; - case NM_VPN_SERVICE_STATE_SHUTDOWN: - return "shutdown"; - case NM_VPN_SERVICE_STATE_STARTING: - return "starting"; - case NM_VPN_SERVICE_STATE_STARTED: - return "started"; - case NM_VPN_SERVICE_STATE_STOPPING: - return "stopping"; - case NM_VPN_SERVICE_STATE_STOPPED: - return "stopped"; - default: - break; - } - return "unknown"; -} +NM_UTILS_LOOKUP_STR_DEFINE_STATIC (_vpn_service_state_to_string, NMVpnServiceState, + NULL, + NM_UTILS_LOOKUP_STR_ITEM (NM_VPN_SERVICE_STATE_INIT, "init"), + NM_UTILS_LOOKUP_STR_ITEM (NM_VPN_SERVICE_STATE_SHUTDOWN, "shutdown"), + NM_UTILS_LOOKUP_STR_ITEM (NM_VPN_SERVICE_STATE_STARTING, "starting"), + NM_UTILS_LOOKUP_STR_ITEM (NM_VPN_SERVICE_STATE_STARTED, "started"), + NM_UTILS_LOOKUP_STR_ITEM (NM_VPN_SERVICE_STATE_STOPPING, "stopping"), + NM_UTILS_LOOKUP_STR_ITEM (NM_VPN_SERVICE_STATE_STOPPED, "stopped"), +); +#define vpn_service_state_to_string(state) NM_UTILS_LOOKUP_STR (_vpn_service_state_to_string, state) -static const char *state_table[] = { - [STATE_UNKNOWN] = "unknown", - [STATE_WAITING] = "waiting", - [STATE_PREPARE] = "prepare", - [STATE_NEED_AUTH] = "need-auth", - [STATE_CONNECT] = "connect", - [STATE_IP_CONFIG_GET] = "ip-config-get", - [STATE_PRE_UP] = "pre-up", - [STATE_ACTIVATED] = "activated", - [STATE_DEACTIVATING] = "deactivating", - [STATE_DISCONNECTED] = "disconnected", - [STATE_FAILED] = "failed", -}; +NM_UTILS_LOOKUP_STR_DEFINE_STATIC (_vpn_state_to_string, VpnState, + NULL, + NM_UTILS_LOOKUP_STR_ITEM (STATE_UNKNOWN, "unknown"), + NM_UTILS_LOOKUP_STR_ITEM (STATE_WAITING, "waiting"), + NM_UTILS_LOOKUP_STR_ITEM (STATE_PREPARE, "prepare"), + NM_UTILS_LOOKUP_STR_ITEM (STATE_NEED_AUTH, "need-auth"), + NM_UTILS_LOOKUP_STR_ITEM (STATE_CONNECT, "connect"), + NM_UTILS_LOOKUP_STR_ITEM (STATE_IP_CONFIG_GET, "ip-config-get"), + NM_UTILS_LOOKUP_STR_ITEM (STATE_PRE_UP, "pre-up"), + NM_UTILS_LOOKUP_STR_ITEM (STATE_ACTIVATED, "activated"), + NM_UTILS_LOOKUP_STR_ITEM (STATE_DEACTIVATING, "deactivating"), + NM_UTILS_LOOKUP_STR_ITEM (STATE_DISCONNECTED, "disconnected"), + NM_UTILS_LOOKUP_STR_ITEM (STATE_FAILED, "failed"), +); +#define vpn_state_to_string(state) NM_UTILS_LOOKUP_STR (_vpn_state_to_string, state) -static const char * -vpn_state_to_string (VpnState state) -{ - if ((gsize) state < G_N_ELEMENTS (state_table)) - return state_table[state]; - return "unknown"; -} - -static const char * -vpn_reason_to_string (NMVpnConnectionStateReason reason) -{ - switch (reason) { - case NM_VPN_CONNECTION_STATE_REASON_NONE: - return "none"; - case NM_VPN_CONNECTION_STATE_REASON_USER_DISCONNECTED: - return "user-disconnected"; - case NM_VPN_CONNECTION_STATE_REASON_DEVICE_DISCONNECTED: - return "device-disconnected"; - case NM_VPN_CONNECTION_STATE_REASON_SERVICE_STOPPED: - return "service-stopped"; - case NM_VPN_CONNECTION_STATE_REASON_IP_CONFIG_INVALID: - return "ip-config-invalid"; - case NM_VPN_CONNECTION_STATE_REASON_CONNECT_TIMEOUT: - return "connect-timeout"; - case NM_VPN_CONNECTION_STATE_REASON_SERVICE_START_TIMEOUT: - return "service-start-timeout"; - case NM_VPN_CONNECTION_STATE_REASON_SERVICE_START_FAILED: - return "service-start-failed"; - case NM_VPN_CONNECTION_STATE_REASON_NO_SECRETS: - return "no-secrets"; - case NM_VPN_CONNECTION_STATE_REASON_LOGIN_FAILED: - return "login-failed"; - case NM_VPN_CONNECTION_STATE_REASON_CONNECTION_REMOVED: - return "connection-removed"; - default: - break; - } - return "unknown"; -} +NM_UTILS_LOOKUP_STR_DEFINE_STATIC (_vpn_reason_to_string, NMVpnConnectionStateReason, + NULL, + NM_UTILS_LOOKUP_STR_ITEM (NM_VPN_CONNECTION_STATE_REASON_NONE, "none"), + NM_UTILS_LOOKUP_STR_ITEM (NM_VPN_CONNECTION_STATE_REASON_USER_DISCONNECTED, "user-disconnected"), + NM_UTILS_LOOKUP_STR_ITEM (NM_VPN_CONNECTION_STATE_REASON_DEVICE_DISCONNECTED, "device-disconnected"), + NM_UTILS_LOOKUP_STR_ITEM (NM_VPN_CONNECTION_STATE_REASON_SERVICE_STOPPED, "service-stopped"), + NM_UTILS_LOOKUP_STR_ITEM (NM_VPN_CONNECTION_STATE_REASON_IP_CONFIG_INVALID, "ip-config-invalid"), + NM_UTILS_LOOKUP_STR_ITEM (NM_VPN_CONNECTION_STATE_REASON_CONNECT_TIMEOUT, "connect-timeout"), + NM_UTILS_LOOKUP_STR_ITEM (NM_VPN_CONNECTION_STATE_REASON_SERVICE_START_TIMEOUT, "service-start-timeout"), + NM_UTILS_LOOKUP_STR_ITEM (NM_VPN_CONNECTION_STATE_REASON_SERVICE_START_FAILED, "service-start-failed"), + NM_UTILS_LOOKUP_STR_ITEM (NM_VPN_CONNECTION_STATE_REASON_NO_SECRETS, "no-secrets"), + NM_UTILS_LOOKUP_STR_ITEM (NM_VPN_CONNECTION_STATE_REASON_LOGIN_FAILED, "login-failed"), + NM_UTILS_LOOKUP_STR_ITEM (NM_VPN_CONNECTION_STATE_REASON_CONNECTION_REMOVED, "connection-removed"), +); +#define vpn_reason_to_string(reason) NM_UTILS_LOOKUP_STR (_vpn_reason_to_string, reason) static void plugin_state_changed (NMVpnConnection *self, NMVpnServiceState new_service_state)