summary refs log tree commit diff
path: root/src/vpn-manager
diff options
context:
space:
mode:
Diffstat (limited to 'src/vpn-manager')
-rw-r--r--src/vpn-manager/nm-vpn-connection.c146
-rw-r--r--src/vpn-manager/nm-vpn-manager.c3
2 files changed, 55 insertions, 94 deletions
diff --git a/src/vpn-manager/nm-vpn-connection.c b/src/vpn-manager/nm-vpn-connection.c
index c548c9fa..653b9972 100644
--- a/src/vpn-manager/nm-vpn-connection.c
+++ b/src/vpn-manager/nm-vpn-connection.c
@@ -19,7 +19,7 @@
  * Copyright (C) 2006 - 2008 Novell, Inc.
  */
 
-#include "config.h"
+#include "nm-default.h"
 
 #include <string.h>
 #include <sys/socket.h>
@@ -28,7 +28,6 @@
 #include <errno.h>
 #include <stdlib.h>
 
-#include "nm-default.h"
 #include "nm-vpn-connection.h"
 #include "nm-ip4-config.h"
 #include "nm-ip6-config.h"
@@ -767,21 +766,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,
+	NM_UTILS_LOOKUP_DEFAULT (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 +794,50 @@ 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";
-}
-
-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",
-};
-
-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_service_state_to_string, NMVpnServiceState,
+	NM_UTILS_LOOKUP_DEFAULT (NULL),
+	NM_UTILS_LOOKUP_STR_ITEM (NM_VPN_SERVICE_STATE_UNKNOWN,  "unknown"),
+	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)
+
+NM_UTILS_LOOKUP_STR_DEFINE_STATIC (_vpn_state_to_string, VpnState,
+	NM_UTILS_LOOKUP_DEFAULT (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)
+
+NM_UTILS_LOOKUP_STR_DEFINE_STATIC (_vpn_reason_to_string, NMVpnConnectionStateReason,
+	NM_UTILS_LOOKUP_DEFAULT (NULL),
+	NM_UTILS_LOOKUP_STR_ITEM (NM_VPN_CONNECTION_STATE_REASON_UNKNOWN,               "unknown"),
+	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)
@@ -1321,6 +1281,8 @@ nm_vpn_connection_config_get (NMVpnConnection *self, GVariant *dict)
 	if (g_variant_lookup (dict, NM_VPN_PLUGIN_CONFIG_HAS_IP6, "b", &b))
 		priv->has_ip6 = b;
 	nm_exported_object_clear_and_unexport (&priv->ip6_config);
+
+	nm_vpn_connection_config_maybe_complete (self, TRUE);
 }
 
 guint32
diff --git a/src/vpn-manager/nm-vpn-manager.c b/src/vpn-manager/nm-vpn-manager.c
index 45d22998..6dcd5463 100644
--- a/src/vpn-manager/nm-vpn-manager.c
+++ b/src/vpn-manager/nm-vpn-manager.c
@@ -19,11 +19,10 @@
  * Copyright (C) 2006 - 2008 Novell, Inc.
  */
 
-#include "config.h"
+#include "nm-default.h"
 
 #include <string.h>
 
-#include "nm-default.h"
 #include "nm-vpn-manager.h"
 #include "nm-vpn-plugin-info.h"
 #include "nm-vpn-connection.h"