about summary refs log tree commit diff
path: root/clients/tui/nm-editor-utils.c
diff options
context:
space:
mode:
Diffstat (limited to 'clients/tui/nm-editor-utils.c')
-rw-r--r--clients/tui/nm-editor-utils.c691
1 files changed, 343 insertions, 348 deletions
diff --git a/clients/tui/nm-editor-utils.c b/clients/tui/nm-editor-utils.c
index 42019361..e85a41bc 100644
--- a/clients/tui/nm-editor-utils.c
+++ b/clients/tui/nm-editor-utils.c
@@ -1,4 +1,4 @@
-// SPDX-License-Identifier: GPL-2.0+
+/* SPDX-License-Identifier: GPL-2.0+ */
 /*
  * Copyright (C) 2012, 2013 Red Hat, Inc.
  */
@@ -16,93 +16,86 @@
 
 #include "nm-editor-utils.h"
 #if 0
-#include "nm-vpn-helpers.h"
+    #include "nm-vpn-helpers.h"
 
 static GSList *vpn_plugins;
 
 static int
 sort_vpn_plugins (gconstpointer a, gconstpointer b)
 {
-	NMVpnEditorPlugin *aa = NM_VPN_EDITOR_PLUGIN (a);
-	NMVpnEditorPlugin *bb = NM_VPN_EDITOR_PLUGIN (b);
-	char *aa_desc = NULL, *bb_desc = NULL;
-	int ret;
+    NMVpnEditorPlugin *aa = NM_VPN_EDITOR_PLUGIN (a);
+    NMVpnEditorPlugin *bb = NM_VPN_EDITOR_PLUGIN (b);
+    char *aa_desc = NULL, *bb_desc = NULL;
+    int ret;
 
-	g_object_get (aa, NM_VPN_EDITOR_PLUGIN_NAME, &aa_desc, NULL);
-	g_object_get (bb, NM_VPN_EDITOR_PLUGIN_NAME, &bb_desc, NULL);
+    g_object_get (aa, NM_VPN_EDITOR_PLUGIN_NAME, &aa_desc, NULL);
+    g_object_get (bb, NM_VPN_EDITOR_PLUGIN_NAME, &bb_desc, NULL);
 
-	ret = g_strcmp0 (aa_desc, bb_desc);
+    ret = g_strcmp0 (aa_desc, bb_desc);
 
-	g_free (aa_desc);
-	g_free (bb_desc);
+    g_free (aa_desc);
+    g_free (bb_desc);
 
-	return ret;
+    return ret;
 }
 #endif
 
 static void
-wifi_connection_setup_func (NMConnection        *connection,
-                            NMSettingConnection *s_con,
-                            NMSetting           *s_hw)
+wifi_connection_setup_func(NMConnection *connection, NMSettingConnection *s_con, NMSetting *s_hw)
 {
-	g_object_set (G_OBJECT (s_hw),
-	              NM_SETTING_WIRELESS_MODE, NM_SETTING_WIRELESS_MODE_INFRA,
-	              NULL);
+    g_object_set(G_OBJECT(s_hw), NM_SETTING_WIRELESS_MODE, NM_SETTING_WIRELESS_MODE_INFRA, NULL);
 }
 
 static void
-bond_connection_setup_func (NMConnection        *connection,
-                            NMSettingConnection *s_con,
-                            NMSetting           *s_hw)
+bond_connection_setup_func(NMConnection *connection, NMSettingConnection *s_con, NMSetting *s_hw)
 {
-	NMSettingBond *s_bond = NM_SETTING_BOND (s_hw);
-	guint i;
-	const char *value;
-	static const char *const options[] = {
-		NM_SETTING_BOND_OPTION_MODE,
-		NM_SETTING_BOND_OPTION_MIIMON,
-		NM_SETTING_BOND_OPTION_DOWNDELAY,
-		NM_SETTING_BOND_OPTION_UPDELAY,
-	};
-
-	for (i = 0; i < G_N_ELEMENTS (options); i++) {
-		value = nm_setting_bond_get_option_default (s_bond, options[i]);
-		if (value)
-			nm_setting_bond_add_option (s_bond, options[i], value);
-	}
+    NMSettingBond *          s_bond = NM_SETTING_BOND(s_hw);
+    guint                    i;
+    const char *             value;
+    static const char *const options[] = {
+        NM_SETTING_BOND_OPTION_MODE,
+        NM_SETTING_BOND_OPTION_MIIMON,
+        NM_SETTING_BOND_OPTION_DOWNDELAY,
+        NM_SETTING_BOND_OPTION_UPDELAY,
+    };
+
+    for (i = 0; i < G_N_ELEMENTS(options); i++) {
+        value = nm_setting_bond_get_option_default(s_bond, options[i]);
+        if (value)
+            nm_setting_bond_add_option(s_bond, options[i], value);
+    }
 }
 
-typedef void (*NMEditorNewConnectionSetupFunc) (NMConnection        *connection,
-                                                NMSettingConnection *s_con,
-                                                NMSetting           *s_hw);
+typedef void (*NMEditorNewConnectionSetupFunc)(NMConnection *       connection,
+                                               NMSettingConnection *s_con,
+                                               NMSetting *          s_hw);
 
 typedef struct {
-	NMEditorConnectionTypeData data;
+    NMEditorConnectionTypeData data;
 
-	const char *id_format;
-	NMEditorNewConnectionSetupFunc connection_setup_func;
-	gboolean no_autoconnect;
+    const char *                   id_format;
+    NMEditorNewConnectionSetupFunc connection_setup_func;
+    gboolean                       no_autoconnect;
 } NMEditorConnectionTypeDataReal;
 
 static int
-sort_types (gconstpointer a, gconstpointer b)
+sort_types(gconstpointer a, gconstpointer b)
 {
-	NMEditorConnectionTypeData *typea = *(NMEditorConnectionTypeData **)a;
-	NMEditorConnectionTypeData *typeb = *(NMEditorConnectionTypeData **)b;
-
-	if (typea->virtual && !typeb->virtual)
-		return 1;
-	else if (typeb->virtual && !typea->virtual)
-		return -1;
-
-	if (typea->setting_type == NM_TYPE_SETTING_VPN &&
-	    typeb->setting_type != NM_TYPE_SETTING_VPN)
-		return 1;
-	else if (typeb->setting_type == NM_TYPE_SETTING_VPN &&
-	         typea->setting_type != NM_TYPE_SETTING_VPN)
-		return -1;
-
-	return g_utf8_collate (typea->name, typeb->name);
+    NMEditorConnectionTypeData *typea = *(NMEditorConnectionTypeData **) a;
+    NMEditorConnectionTypeData *typeb = *(NMEditorConnectionTypeData **) b;
+
+    if (typea->virtual && !typeb->virtual)
+        return 1;
+    else if (typeb->virtual && !typea->virtual)
+        return -1;
+
+    if (typea->setting_type == NM_TYPE_SETTING_VPN && typeb->setting_type != NM_TYPE_SETTING_VPN)
+        return 1;
+    else if (typeb->setting_type == NM_TYPE_SETTING_VPN
+             && typea->setting_type != NM_TYPE_SETTING_VPN)
+        return -1;
+
+    return g_utf8_collate(typea->name, typeb->name);
 }
 
 /**
@@ -116,220 +109,218 @@ sort_types (gconstpointer a, gconstpointer b)
  * Returns: the array of connection type information
  */
 NMEditorConnectionTypeData **
-nm_editor_utils_get_connection_type_list (void)
+nm_editor_utils_get_connection_type_list(void)
 {
-	GPtrArray *array;
-	NMEditorConnectionTypeDataReal *item;
-	static NMEditorConnectionTypeData **list;
+    GPtrArray *                         array;
+    NMEditorConnectionTypeDataReal *    item;
+    static NMEditorConnectionTypeData **list;
 #if 0
-	GHashTable *vpn_plugins_hash;
-	gboolean have_vpn_plugins;
+    GHashTable *vpn_plugins_hash;
+    gboolean have_vpn_plugins;
 #endif
 
-	if (list)
-		return list;
-
-	array = g_ptr_array_new ();
-
-	item = g_new0 (NMEditorConnectionTypeDataReal, 1);
-	item->data.name = _("Ethernet");
-	item->data.setting_type = NM_TYPE_SETTING_WIRED;
-	item->data.device_type = NM_TYPE_DEVICE_ETHERNET;
-	item->data.virtual = FALSE;
-	item->id_format = _("Ethernet connection %d");
-	g_ptr_array_add (array, item);
-
-	item = g_new0 (NMEditorConnectionTypeDataReal, 1);
-	item->data.name = _("Wi-Fi");
-	item->data.setting_type = NM_TYPE_SETTING_WIRELESS;
-	item->data.device_type = NM_TYPE_DEVICE_WIFI;
-	item->data.virtual = FALSE;
-	item->id_format = _("Wi-Fi connection %d");
-	item->connection_setup_func = wifi_connection_setup_func;
-	g_ptr_array_add (array, item);
-
-	item = g_new0 (NMEditorConnectionTypeDataReal, 1);
-	item->data.name = _("InfiniBand");
-	item->data.setting_type = NM_TYPE_SETTING_INFINIBAND;
-	item->data.device_type = NM_TYPE_DEVICE_INFINIBAND;
-	item->data.virtual = FALSE;
-	item->id_format = _("InfiniBand connection %d");
-	g_ptr_array_add (array, item);
+    if (list)
+        return list;
+
+    array = g_ptr_array_new();
+
+    item                    = g_new0(NMEditorConnectionTypeDataReal, 1);
+    item->data.name         = _("Ethernet");
+    item->data.setting_type = NM_TYPE_SETTING_WIRED;
+    item->data.device_type  = NM_TYPE_DEVICE_ETHERNET;
+    item->data.virtual      = FALSE;
+    item->id_format         = _("Ethernet connection %d");
+    g_ptr_array_add(array, item);
+
+    item                        = g_new0(NMEditorConnectionTypeDataReal, 1);
+    item->data.name             = _("Wi-Fi");
+    item->data.setting_type     = NM_TYPE_SETTING_WIRELESS;
+    item->data.device_type      = NM_TYPE_DEVICE_WIFI;
+    item->data.virtual          = FALSE;
+    item->id_format             = _("Wi-Fi connection %d");
+    item->connection_setup_func = wifi_connection_setup_func;
+    g_ptr_array_add(array, item);
+
+    item                    = g_new0(NMEditorConnectionTypeDataReal, 1);
+    item->data.name         = _("InfiniBand");
+    item->data.setting_type = NM_TYPE_SETTING_INFINIBAND;
+    item->data.device_type  = NM_TYPE_DEVICE_INFINIBAND;
+    item->data.virtual      = FALSE;
+    item->id_format         = _("InfiniBand connection %d");
+    g_ptr_array_add(array, item);
 
 #if 0
-	item = g_new0 (NMEditorConnectionTypeDataReal, 1);
-	item->data.name = _("Mobile Broadband");
-	item->data.setting_type = NM_TYPE_SETTING_GSM;
-	item->data.virtual = FALSE;
-	item->id_format = _("Mobile broadband connection %d");
-	item->no_autoconnect = TRUE;
-	g_ptr_array_add (array, item);
+    item = g_new0 (NMEditorConnectionTypeDataReal, 1);
+    item->data.name = _("Mobile Broadband");
+    item->data.setting_type = NM_TYPE_SETTING_GSM;
+    item->data.virtual = FALSE;
+    item->id_format = _("Mobile broadband connection %d");
+    item->no_autoconnect = TRUE;
+    g_ptr_array_add (array, item);
 #endif
 
-	item = g_new0 (NMEditorConnectionTypeDataReal, 1);
-	item->data.name = _("DSL");
-	item->data.setting_type = NM_TYPE_SETTING_PPPOE;
-	item->data.device_type = NM_TYPE_DEVICE_ETHERNET;
-	item->data.virtual = FALSE;
-	item->id_format = _("DSL connection %d");
-	item->no_autoconnect = TRUE;
-	g_ptr_array_add (array, item);
-
-	item = g_new0 (NMEditorConnectionTypeDataReal, 1);
-	item->data.name = _("Bond");
-	item->data.setting_type = NM_TYPE_SETTING_BOND;
-	item->data.device_type = NM_TYPE_DEVICE_BOND;
-	item->data.virtual = TRUE;
-	item->id_format = _("Bond connection %d");
-	item->connection_setup_func = bond_connection_setup_func;
-	g_ptr_array_add (array, item);
-
-	item = g_new0 (NMEditorConnectionTypeDataReal, 1);
-	item->data.name = _("Bridge");
-	item->data.setting_type = NM_TYPE_SETTING_BRIDGE;
-	item->data.slave_setting_type = NM_TYPE_SETTING_BRIDGE_PORT;
-	item->data.device_type = NM_TYPE_DEVICE_BRIDGE;
-	item->data.virtual = TRUE;
-	item->id_format = _("Bridge connection %d");
-	g_ptr_array_add (array, item);
-
-	item = g_new0 (NMEditorConnectionTypeDataReal, 1);
-	item->data.name = _("Team");
-	item->data.setting_type = NM_TYPE_SETTING_TEAM;
-	item->data.slave_setting_type = NM_TYPE_SETTING_TEAM_PORT;
-	item->data.device_type = NM_TYPE_DEVICE_TEAM;
-	item->data.virtual = TRUE;
-	item->id_format = _("Team connection %d");
-	g_ptr_array_add (array, item);
-
-	item = g_new0 (NMEditorConnectionTypeDataReal, 1);
-	item->data.name = _("VLAN");
-	item->data.setting_type = NM_TYPE_SETTING_VLAN;
-	item->data.device_type = NM_TYPE_DEVICE_VLAN;
-	item->data.virtual = TRUE;
-	item->id_format = _("VLAN connection %d");
-	g_ptr_array_add (array, item);
-
-	item = g_new0 (NMEditorConnectionTypeDataReal, 1);
-	item->data.name = _("IP tunnel");
-	item->data.setting_type = NM_TYPE_SETTING_IP_TUNNEL;
-	item->data.device_type = NM_TYPE_DEVICE_IP_TUNNEL;
-	item->data.virtual = TRUE;
-	item->id_format = _("IP tunnel connection %d");
-	g_ptr_array_add (array, item);
+    item                    = g_new0(NMEditorConnectionTypeDataReal, 1);
+    item->data.name         = _("DSL");
+    item->data.setting_type = NM_TYPE_SETTING_PPPOE;
+    item->data.device_type  = NM_TYPE_DEVICE_ETHERNET;
+    item->data.virtual      = FALSE;
+    item->id_format         = _("DSL connection %d");
+    item->no_autoconnect    = TRUE;
+    g_ptr_array_add(array, item);
+
+    item                        = g_new0(NMEditorConnectionTypeDataReal, 1);
+    item->data.name             = _("Bond");
+    item->data.setting_type     = NM_TYPE_SETTING_BOND;
+    item->data.device_type      = NM_TYPE_DEVICE_BOND;
+    item->data.virtual          = TRUE;
+    item->id_format             = _("Bond connection %d");
+    item->connection_setup_func = bond_connection_setup_func;
+    g_ptr_array_add(array, item);
+
+    item                          = g_new0(NMEditorConnectionTypeDataReal, 1);
+    item->data.name               = _("Bridge");
+    item->data.setting_type       = NM_TYPE_SETTING_BRIDGE;
+    item->data.slave_setting_type = NM_TYPE_SETTING_BRIDGE_PORT;
+    item->data.device_type        = NM_TYPE_DEVICE_BRIDGE;
+    item->data.virtual            = TRUE;
+    item->id_format               = _("Bridge connection %d");
+    g_ptr_array_add(array, item);
+
+    item                          = g_new0(NMEditorConnectionTypeDataReal, 1);
+    item->data.name               = _("Team");
+    item->data.setting_type       = NM_TYPE_SETTING_TEAM;
+    item->data.slave_setting_type = NM_TYPE_SETTING_TEAM_PORT;
+    item->data.device_type        = NM_TYPE_DEVICE_TEAM;
+    item->data.virtual            = TRUE;
+    item->id_format               = _("Team connection %d");
+    g_ptr_array_add(array, item);
+
+    item                    = g_new0(NMEditorConnectionTypeDataReal, 1);
+    item->data.name         = _("VLAN");
+    item->data.setting_type = NM_TYPE_SETTING_VLAN;
+    item->data.device_type  = NM_TYPE_DEVICE_VLAN;
+    item->data.virtual      = TRUE;
+    item->id_format         = _("VLAN connection %d");
+    g_ptr_array_add(array, item);
+
+    item                    = g_new0(NMEditorConnectionTypeDataReal, 1);
+    item->data.name         = _("IP tunnel");
+    item->data.setting_type = NM_TYPE_SETTING_IP_TUNNEL;
+    item->data.device_type  = NM_TYPE_DEVICE_IP_TUNNEL;
+    item->data.virtual      = TRUE;
+    item->id_format         = _("IP tunnel connection %d");
+    g_ptr_array_add(array, item);
 
 #if 0
-	/* Add "VPN" only if there are plugins */
-	vpn_plugins_hash = nm_vpn_get_plugin_infos ();
-	have_vpn_plugins  = vpn_plugins_hash && g_hash_table_size (vpn_plugins_hash);
-	if (have_vpn_plugins) {
-		GHashTableIter iter;
-		gpointer name, plugin;
-
-		item = g_new0 (NMEditorConnectionTypeDataReal, 1);
-		item->data.name = _("VPN");
-		item->data.setting_type = NM_TYPE_SETTING_VPN;
-		item->data.virtual = TRUE;
-		item->id_format = _("VPN connection %d");
-		item->no_autoconnect = TRUE;
-		g_ptr_array_add (array, item);
-
-		vpn_plugins = NULL;
-		g_hash_table_iter_init (&iter, vpn_plugins_hash);
-		while (g_hash_table_iter_next (&iter, &name, &plugin))
-			vpn_plugins = g_slist_prepend (vpn_plugins, plugin);
-		vpn_plugins = g_slist_sort (vpn_plugins, sort_vpn_plugins);
-	}
+    /* Add "VPN" only if there are plugins */
+    vpn_plugins_hash = nm_vpn_get_plugin_infos ();
+    have_vpn_plugins  = vpn_plugins_hash && g_hash_table_size (vpn_plugins_hash);
+    if (have_vpn_plugins) {
+        GHashTableIter iter;
+        gpointer name, plugin;
+
+        item = g_new0 (NMEditorConnectionTypeDataReal, 1);
+        item->data.name = _("VPN");
+        item->data.setting_type = NM_TYPE_SETTING_VPN;
+        item->data.virtual = TRUE;
+        item->id_format = _("VPN connection %d");
+        item->no_autoconnect = TRUE;
+        g_ptr_array_add (array, item);
+
+        vpn_plugins = NULL;
+        g_hash_table_iter_init (&iter, vpn_plugins_hash);
+        while (g_hash_table_iter_next (&iter, &name, &plugin))
+            vpn_plugins = g_slist_prepend (vpn_plugins, plugin);
+        vpn_plugins = g_slist_sort (vpn_plugins, sort_vpn_plugins);
+    }
 #endif
 
-	g_ptr_array_sort (array, sort_types);
-	g_ptr_array_add (array, NULL);
+    g_ptr_array_sort(array, sort_types);
+    g_ptr_array_add(array, NULL);
 
-	list = (NMEditorConnectionTypeData **)g_ptr_array_free (array, FALSE);
-	return list;
+    list = (NMEditorConnectionTypeData **) g_ptr_array_free(array, FALSE);
+    return list;
 }
 
 static gboolean
-_assert_format_int (const char *format)
+_assert_format_int(const char *format)
 {
-	g_assert (format);
-	format = strchr (format, '%');
-	g_assert (format);
-	format++;
-	g_assert (!strchr (format, '%'));
-	g_assert (format[0] == 'd');
-	return TRUE;
+    g_assert(format);
+    format = strchr(format, '%');
+    g_assert(format);
+    format++;
+    g_assert(!strchr(format, '%'));
+    g_assert(format[0] == 'd');
+    return TRUE;
 }
 
 static char *
-get_available_connection_name (const char *format,
-                               NMClient   *client)
+get_available_connection_name(const char *format, NMClient *client)
 {
-	const GPtrArray *conns;
-	GSList *names = NULL, *iter;
-	char *cname = NULL;
-	int i = 0;
-
-	nm_assert (_assert_format_int (format));
-
-	conns = nm_client_get_connections (client);
-	for (i = 0; i < conns->len; i++) {
-		const char *id;
-
-		id = nm_connection_get_id (NM_CONNECTION (conns->pdata[i]));
-		g_assert (id);
-		names = g_slist_append (names, (gpointer) id);
-	}
-
-	/* Find the next available unique connection name */
-	for (i = 1; !cname && i < 10000; i++) {
-		char *temp;
-		gboolean found = FALSE;
-
-		NM_PRAGMA_WARNING_DISABLE("-Wformat-nonliteral")
-		temp = g_strdup_printf (format, i);
-		NM_PRAGMA_WARNING_REENABLE
-		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;
+    const GPtrArray *conns;
+    GSList *         names = NULL, *iter;
+    char *           cname = NULL;
+    int              i     = 0;
+
+    nm_assert(_assert_format_int(format));
+
+    conns = nm_client_get_connections(client);
+    for (i = 0; i < conns->len; i++) {
+        const char *id;
+
+        id = nm_connection_get_id(NM_CONNECTION(conns->pdata[i]));
+        g_assert(id);
+        names = g_slist_append(names, (gpointer) id);
+    }
+
+    /* Find the next available unique connection name */
+    for (i = 1; !cname && i < 10000; i++) {
+        char *   temp;
+        gboolean found = FALSE;
+
+        NM_PRAGMA_WARNING_DISABLE("-Wformat-nonliteral")
+        temp = g_strdup_printf(format, i);
+        NM_PRAGMA_WARNING_REENABLE
+        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;
 }
 
 static char *
-get_available_iface_name (const char *try_name,
-                          NMClient   *client)
+get_available_iface_name(const char *try_name, NMClient *client)
 {
-	const GPtrArray *connections;
-	NMConnection *connection;
-	char *new_name;
-	unsigned num = 1;
-	int i = 0;
-	const char *ifname = NULL;
-
-	connections = nm_client_get_connections (client);
-
-	new_name = g_strdup (try_name);
-	while (i < connections->len) {
-		connection = NM_CONNECTION (connections->pdata[i]);
-		ifname = nm_connection_get_interface_name (connection);
-		if (g_strcmp0 (new_name, ifname) == 0) {
-			g_free (new_name);
-			new_name = g_strdup_printf ("%s%d", try_name, num++);
-			i = 0;
-		} else
-			i++;
-	}
-	return new_name;
+    const GPtrArray *connections;
+    NMConnection *   connection;
+    char *           new_name;
+    unsigned         num    = 1;
+    int              i      = 0;
+    const char *     ifname = NULL;
+
+    connections = nm_client_get_connections(client);
+
+    new_name = g_strdup(try_name);
+    while (i < connections->len) {
+        connection = NM_CONNECTION(connections->pdata[i]);
+        ifname     = nm_connection_get_interface_name(connection);
+        if (g_strcmp0(new_name, ifname) == 0) {
+            g_free(new_name);
+            new_name = g_strdup_printf("%s%d", try_name, num++);
+            i        = 0;
+        } else
+            i++;
+    }
+    return new_name;
 }
 
 /**
@@ -348,85 +339,89 @@ get_available_iface_name (const char *try_name,
  * Returns: a new #NMConnection
  */
 NMConnection *
-nm_editor_utils_create_connection (GType         type,
-                                   NMConnection *master,
-                                   NMClient     *client)
+nm_editor_utils_create_connection(GType type, NMConnection *master, NMClient *client)
 {
-	NMEditorConnectionTypeData **types;
-	NMEditorConnectionTypeDataReal *type_data = NULL;
-	const char *master_setting_type = NULL, *master_uuid = NULL;
-	GType master_type = G_TYPE_INVALID, slave_setting_type = G_TYPE_INVALID;
-	NMConnection *connection;
-	NMSettingConnection *s_con;
-	NMSetting *s_hw, *s_slave;
-	char *uuid, *id, *ifname;
-	int i;
-
-	if (master) {
-		NMSettingConnection *master_s_con;
-
-		master_s_con = nm_connection_get_setting_connection (master);
-		master_setting_type = nm_setting_connection_get_connection_type (master_s_con);
-		master_uuid = nm_setting_connection_get_uuid (master_s_con);
-		master_type = nm_setting_lookup_type (master_setting_type);
-	}
-
-	types = nm_editor_utils_get_connection_type_list ();
-	for (i = 0; types[i]; i++) {
-		if (types[i]->setting_type == type)
-			type_data = (NMEditorConnectionTypeDataReal *)types[i];
-		if (types[i]->setting_type == master_type)
-			slave_setting_type = types[i]->slave_setting_type;
-
-	}
-	if (!type_data) {
-		g_return_val_if_reached (NULL);
-		return NULL;
-	}
-
-	connection = nm_simple_connection_new ();
-
-	s_con = NM_SETTING_CONNECTION (nm_setting_connection_new ());
-	nm_connection_add_setting (connection, NM_SETTING (s_con));
-
-	s_hw = g_object_new (type, NULL);
-	nm_connection_add_setting (connection, s_hw);
-
-	if (type == NM_TYPE_SETTING_BOND)
-		ifname = get_available_iface_name ("nm-bond", client);
-	else if (type == NM_TYPE_SETTING_TEAM)
-		ifname = get_available_iface_name ("nm-team", client);
-	else if (type == NM_TYPE_SETTING_BRIDGE)
-		ifname = get_available_iface_name ("nm-bridge", client);
-	else
-		ifname = NULL;
-
-	if (slave_setting_type != G_TYPE_INVALID) {
-		s_slave = g_object_new (slave_setting_type, NULL);
-		nm_connection_add_setting (connection, s_slave);
-	}
-
-	uuid = nm_utils_uuid_generate ();
-	id = get_available_connection_name (type_data->id_format, client);
-
-	g_object_set (s_con,
-	              NM_SETTING_CONNECTION_UUID, uuid,
-	              NM_SETTING_CONNECTION_ID, id,
-	              NM_SETTING_CONNECTION_TYPE, nm_setting_get_name (s_hw),
-	              NM_SETTING_CONNECTION_AUTOCONNECT, !type_data->no_autoconnect,
-	              NM_SETTING_CONNECTION_MASTER, master_uuid,
-	              NM_SETTING_CONNECTION_SLAVE_TYPE, master_setting_type,
-	              NM_SETTING_CONNECTION_INTERFACE_NAME, ifname,
-	              NULL);
-
-	g_free (uuid);
-	g_free (id);
-	g_free (ifname);
-
-	if (type_data->connection_setup_func)
-		type_data->connection_setup_func (connection, s_con, s_hw);
-
-	return connection;
+    NMEditorConnectionTypeData **   types;
+    NMEditorConnectionTypeDataReal *type_data           = NULL;
+    const char *                    master_setting_type = NULL, *master_uuid = NULL;
+    GType                master_type = G_TYPE_INVALID, slave_setting_type = G_TYPE_INVALID;
+    NMConnection *       connection;
+    NMSettingConnection *s_con;
+    NMSetting *          s_hw, *s_slave;
+    char *               uuid, *id, *ifname;
+    int                  i;
+
+    if (master) {
+        NMSettingConnection *master_s_con;
+
+        master_s_con        = nm_connection_get_setting_connection(master);
+        master_setting_type = nm_setting_connection_get_connection_type(master_s_con);
+        master_uuid         = nm_setting_connection_get_uuid(master_s_con);
+        master_type         = nm_setting_lookup_type(master_setting_type);
+    }
+
+    types = nm_editor_utils_get_connection_type_list();
+    for (i = 0; types[i]; i++) {
+        if (types[i]->setting_type == type)
+            type_data = (NMEditorConnectionTypeDataReal *) types[i];
+        if (types[i]->setting_type == master_type)
+            slave_setting_type = types[i]->slave_setting_type;
+    }
+    if (!type_data) {
+        g_return_val_if_reached(NULL);
+        return NULL;
+    }
+
+    connection = nm_simple_connection_new();
+
+    s_con = NM_SETTING_CONNECTION(nm_setting_connection_new());
+    nm_connection_add_setting(connection, NM_SETTING(s_con));
+
+    s_hw = g_object_new(type, NULL);
+    nm_connection_add_setting(connection, s_hw);
+
+    if (type == NM_TYPE_SETTING_BOND)
+        ifname = get_available_iface_name("nm-bond", client);
+    else if (type == NM_TYPE_SETTING_TEAM)
+        ifname = get_available_iface_name("nm-team", client);
+    else if (type == NM_TYPE_SETTING_BRIDGE)
+        ifname = get_available_iface_name("nm-bridge", client);
+    else
+        ifname = NULL;
+
+    if (slave_setting_type != G_TYPE_INVALID) {
+        s_slave = g_object_new(slave_setting_type, NULL);
+        nm_connection_add_setting(connection, s_slave);
+    }
+
+    uuid = nm_utils_uuid_generate();
+    id   = get_available_connection_name(type_data->id_format, client);
+
+    g_object_set(s_con,
+                 NM_SETTING_CONNECTION_UUID,
+                 uuid,
+                 NM_SETTING_CONNECTION_ID,
+                 id,
+                 NM_SETTING_CONNECTION_TYPE,
+                 nm_setting_get_name(s_hw),
+                 NM_SETTING_CONNECTION_AUTOCONNECT,
+                 !type_data->no_autoconnect,
+                 NM_SETTING_CONNECTION_MASTER,
+                 master_uuid,
+                 NM_SETTING_CONNECTION_SLAVE_TYPE,
+                 master_setting_type,
+                 NM_SETTING_CONNECTION_INTERFACE_NAME,
+                 ifname,
+                 NULL);
+
+    g_free(uuid);
+    g_free(id);
+    g_free(ifname);
+
+    if (type_data->connection_setup_func)
+        type_data->connection_setup_func(connection, s_con, s_hw);
+
+    return connection;
 }
 
 /**
@@ -439,26 +434,26 @@ nm_editor_utils_create_connection (GType         type,
  * Returns: the #NMEditorConnectionTypeData
  */
 NMEditorConnectionTypeData *
-nm_editor_utils_get_connection_type_data (NMConnection *conn)
+nm_editor_utils_get_connection_type_data(NMConnection *conn)
 {
-	NMSettingConnection *s_con;
-	const char *conn_type;
-	GType conn_gtype;
-	NMEditorConnectionTypeData **types;
-	int i;
-
-	s_con = nm_connection_get_setting_connection (conn);
-	g_return_val_if_fail (s_con != NULL, NULL);
-
-	conn_type = nm_setting_connection_get_connection_type (s_con);
-	conn_gtype = nm_setting_lookup_type (conn_type);
-	g_return_val_if_fail (conn_gtype != G_TYPE_INVALID, NULL);
-
-	types = nm_editor_utils_get_connection_type_list ();
-	for (i = 0; types[i]; i++) {
-		if (types[i]->setting_type == conn_gtype)
-			return types[i];
-	}
-
-	return NULL;
+    NMSettingConnection *        s_con;
+    const char *                 conn_type;
+    GType                        conn_gtype;
+    NMEditorConnectionTypeData **types;
+    int                          i;
+
+    s_con = nm_connection_get_setting_connection(conn);
+    g_return_val_if_fail(s_con != NULL, NULL);
+
+    conn_type  = nm_setting_connection_get_connection_type(s_con);
+    conn_gtype = nm_setting_lookup_type(conn_type);
+    g_return_val_if_fail(conn_gtype != G_TYPE_INVALID, NULL);
+
+    types = nm_editor_utils_get_connection_type_list();
+    for (i = 0; types[i]; i++) {
+        if (types[i]->setting_type == conn_gtype)
+            return types[i];
+    }
+
+    return NULL;
 }