diff options
| author | Michael Biebl <biebl@debian.org> | 2011-04-21 10:42:53 +0200 |
|---|---|---|
| committer | Michael Biebl <biebl@debian.org> | 2011-04-21 10:42:53 +0200 |
| commit | 8baa1aca8dfd35e3190d7d5655eb83b5b901e263 (patch) | |
| tree | a9ac1e67d0c22a48330c76f08fc5291f85307055 /src/NetworkManagerUtils.c | |
| parent | f75dd6fd1975146623052b843b182dc32c3fbe46 (diff) | |
Imported Upstream version 0.8.4.0 upstream/0.8.4.0
Diffstat (limited to 'src/NetworkManagerUtils.c')
| -rw-r--r-- | src/NetworkManagerUtils.c | 130 |
1 files changed, 12 insertions, 118 deletions
diff --git a/src/NetworkManagerUtils.c b/src/NetworkManagerUtils.c index 3981a1db..3a28467c 100644 --- a/src/NetworkManagerUtils.c +++ b/src/NetworkManagerUtils.c @@ -36,9 +36,6 @@ #include "nm-dbus-manager.h" #include "nm-dispatcher-action.h" #include "nm-dbus-glib-types.h" -#include "nm-setting-connection.h" -#include "nm-setting-ip4-config.h" -#include "nm-setting-ip6-config.h" #include <netlink/addr.h> #include <netinet/in.h> @@ -412,10 +409,21 @@ nm_utils_call_dispatcher (const char *action, } if (connection) { - connection_hash = nm_connection_to_hash (connection, NM_SETTING_HASH_FLAG_NO_SECRETS); + connection_hash = nm_connection_to_hash (connection); connection_props = value_hash_create (); + /* Service name */ + if (nm_connection_get_scope (connection) == NM_CONNECTION_SCOPE_USER) { + value_hash_add_str (connection_props, + NMD_CONNECTION_PROPS_SERVICE_NAME, + NM_DBUS_SERVICE_USER_SETTINGS); + } else if (nm_connection_get_scope (connection) == NM_CONNECTION_SCOPE_SYSTEM) { + value_hash_add_str (connection_props, + NMD_CONNECTION_PROPS_SERVICE_NAME, + NM_DBUS_SERVICE_SYSTEM_SETTINGS); + } + /* path */ value_hash_add_object_path (connection_props, NMD_CONNECTION_PROPS_PATH, @@ -725,117 +733,3 @@ nm_utils_get_proc_sys_net_value (const char *path, return success; } -static char * -get_new_connection_name (const GSList *existing, - const char *format, - const char *preferred) -{ - GSList *names = NULL; - const GSList *iter; - char *cname = NULL; - int i = 0; - gboolean preferred_found = FALSE; - - for (iter = existing; iter; iter = g_slist_next (iter)) { - NMConnection *candidate = NM_CONNECTION (iter->data); - const char *id; - - id = nm_connection_get_id (candidate); - g_assert (id); - names = g_slist_append (names, (gpointer) id); - - if (preferred && !preferred_found && (strcmp (preferred, id) == 0)) - preferred_found = TRUE; - } - - /* Return the preferred name if it was unique */ - if (preferred && !preferred_found) { - g_slist_free (names); - return g_strdup (preferred); - } - - /* Otherwise find the next available unique connection name using the given - * connection name template. - */ - while (!cname && (i++ < 10000)) { - char *temp; - gboolean found = FALSE; - - temp = g_strdup_printf (format, i); - for (iter = names; iter; iter = g_slist_next (iter)) { - if (!strcmp (iter->data, temp)) { - found = TRUE; - break; - } - } - if (!found) - cname = temp; - else - g_free (temp); - } - - g_slist_free (names); - return cname; -} - -void -nm_utils_complete_generic (NMConnection *connection, - const char *ctype, - const GSList *existing, - const char *format, - const char *preferred, - gboolean default_enable_ipv6) -{ - NMSettingConnection *s_con; - NMSettingIP4Config *s_ip4; - NMSettingIP6Config *s_ip6; - const char *method; - char *id, *uuid; - - s_con = (NMSettingConnection *) nm_connection_get_setting (connection, NM_TYPE_SETTING_CONNECTION); - if (!s_con) { - s_con = (NMSettingConnection *) nm_setting_connection_new (); - nm_connection_add_setting (connection, NM_SETTING (s_con)); - } - g_object_set (G_OBJECT (s_con), NM_SETTING_CONNECTION_TYPE, ctype, NULL); - - if (!nm_setting_connection_get_uuid (s_con)) { - uuid = nm_utils_uuid_generate (); - g_object_set (G_OBJECT (s_con), NM_SETTING_CONNECTION_UUID, uuid, NULL); - g_free (uuid); - } - - /* Add a connection ID if absent */ - if (!nm_setting_connection_get_id (s_con)) { - id = get_new_connection_name (existing, format, preferred); - g_object_set (G_OBJECT (s_con), NM_SETTING_CONNECTION_ID, id, NULL); - g_free (id); - } - - /* Add an 'auto' IPv4 connection if present */ - s_ip4 = (NMSettingIP4Config *) nm_connection_get_setting (connection, NM_TYPE_SETTING_IP4_CONFIG); - if (!s_ip4) { - s_ip4 = (NMSettingIP4Config *) nm_setting_ip4_config_new (); - nm_connection_add_setting (connection, NM_SETTING (s_ip4)); - } - method = nm_setting_ip4_config_get_method (s_ip4); - if (!method) { - g_object_set (G_OBJECT (s_ip4), - NM_SETTING_IP4_CONFIG_METHOD, NM_SETTING_IP4_CONFIG_METHOD_AUTO, - NULL); - } - - /* Add an 'auto' IPv6 setting if allowed and not preset */ - s_ip6 = (NMSettingIP6Config *) nm_connection_get_setting (connection, NM_TYPE_SETTING_IP6_CONFIG); - if (!s_ip6 && default_enable_ipv6) { - s_ip6 = (NMSettingIP6Config *) nm_setting_ip6_config_new (); - nm_connection_add_setting (connection, NM_SETTING (s_ip6)); - } - if (s_ip6 && !nm_setting_ip6_config_get_method (s_ip6)) { - g_object_set (G_OBJECT (s_ip6), - NM_SETTING_IP6_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_AUTO, - NM_SETTING_IP6_CONFIG_MAY_FAIL, TRUE, - NULL); - } -} - |