[network-manager-applet: 2/6] connection-editor: factor out the code for deciding ip4/ip6 support
- From: Dan Winship <danw src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [network-manager-applet: 2/6] connection-editor: factor out the code for deciding ip4/ip6 support
- Date: Fri, 25 Jul 2014 15:51:14 +0000 (UTC)
commit f5bc4ed3331f6b32c5e5d7d500e742a5e7623644
Author: Dan Winship <danw gnome org>
Date: Fri Jul 25 08:39:17 2014 -0400
connection-editor: factor out the code for deciding ip4/ip6 support
src/connection-editor/connection-helpers.c | 35 ++++++++++++++++++++++++++
src/connection-editor/connection-helpers.h | 3 ++
src/connection-editor/nm-connection-editor.c | 16 +++--------
3 files changed, 43 insertions(+), 11 deletions(-)
---
diff --git a/src/connection-editor/connection-helpers.c b/src/connection-editor/connection-helpers.c
index d346532..d99e7d8 100644
--- a/src/connection-editor/connection-helpers.c
+++ b/src/connection-editor/connection-helpers.c
@@ -590,3 +590,38 @@ delete_connection (GtkWindow *parent_window,
nm_remote_connection_delete (connection, delete_cb, info);
}
+
+gboolean
+connection_supports_ip4 (NMConnection *connection)
+{
+ NMSettingConnection *s_con;
+
+ g_return_val_if_fail (NM_IS_CONNECTION (connection), FALSE);
+
+ s_con = nm_connection_get_setting_connection (connection);
+ return (nm_setting_connection_get_slave_type (s_con) == NULL);
+}
+
+gboolean
+connection_supports_ip6 (NMConnection *connection)
+{
+ NMSettingConnection *s_con;
+ const char *connection_type;
+
+ g_return_val_if_fail (NM_IS_CONNECTION (connection), FALSE);
+
+ s_con = nm_connection_get_setting_connection (connection);
+ if (nm_setting_connection_get_slave_type (s_con) != NULL)
+ return FALSE;
+
+ connection_type = nm_setting_connection_get_connection_type (s_con);
+ if (!strcmp (connection_type, NM_SETTING_VPN_SETTING_NAME))
+ return vpn_supports_ipv6 (connection);
+ else if (!strcmp (connection_type, NM_SETTING_PPPOE_SETTING_NAME))
+ return FALSE;
+ else if ( !strcmp (connection_type, NM_SETTING_GSM_SETTING_NAME)
+ || !strcmp (connection_type, NM_SETTING_CDMA_SETTING_NAME))
+ return FALSE;
+ else
+ return TRUE;
+}
diff --git a/src/connection-editor/connection-helpers.h b/src/connection-editor/connection-helpers.h
index cef2afe..ae60ec0 100644
--- a/src/connection-editor/connection-helpers.h
+++ b/src/connection-editor/connection-helpers.h
@@ -67,5 +67,8 @@ void delete_connection (GtkWindow *parent_window,
DeleteConnectionResultFunc result_func,
gpointer user_data);
+gboolean connection_supports_ip4 (NMConnection *connection);
+gboolean connection_supports_ip6 (NMConnection *connection);
+
#endif /* __CONNECTION_HELPERS_H__ */
diff --git a/src/connection-editor/nm-connection-editor.c b/src/connection-editor/nm-connection-editor.c
index b3a3772..00a0f98 100644
--- a/src/connection-editor/nm-connection-editor.c
+++ b/src/connection-editor/nm-connection-editor.c
@@ -729,7 +729,6 @@ nm_connection_editor_set_connection (NMConnectionEditor *editor,
const char *slave_type;
gboolean success = FALSE;
GSList *iter, *copy;
- gboolean add_ip4 = TRUE, add_ip6 = TRUE;
g_return_val_if_fail (NM_IS_CONNECTION_EDITOR (editor), FALSE);
g_return_val_if_fail (NM_IS_CONNECTION (orig_connection), FALSE);
@@ -767,7 +766,6 @@ nm_connection_editor_set_connection (NMConnectionEditor *editor,
} else if (!strcmp (connection_type, NM_SETTING_VPN_SETTING_NAME)) {
if (!add_page (editor, ce_page_vpn_new, editor->connection, error))
goto out;
- add_ip6 = vpn_supports_ipv6 (editor->connection);
} else if (!strcmp (connection_type, NM_SETTING_PPPOE_SETTING_NAME)) {
if (!add_page (editor, ce_page_dsl_new, editor->connection, error))
goto out;
@@ -775,14 +773,12 @@ nm_connection_editor_set_connection (NMConnectionEditor *editor,
goto out;
if (!add_page (editor, ce_page_ppp_new, editor->connection, error))
goto out;
- add_ip6 = FALSE;
} else if (!strcmp (connection_type, NM_SETTING_GSM_SETTING_NAME) ||
!strcmp (connection_type, NM_SETTING_CDMA_SETTING_NAME)) {
if (!add_page (editor, ce_page_mobile_new, editor->connection, error))
goto out;
if (!add_page (editor, ce_page_ppp_new, editor->connection, error))
goto out;
- add_ip6 = FALSE;
} else if (!strcmp (connection_type, NM_SETTING_WIMAX_SETTING_NAME)) {
if (!add_page (editor, ce_page_wimax_new, editor->connection, error))
goto out;
@@ -806,21 +802,19 @@ nm_connection_editor_set_connection (NMConnectionEditor *editor,
}
slave_type = nm_setting_connection_get_slave_type (s_con);
- if (!g_strcmp0 (slave_type, NM_SETTING_BOND_SETTING_NAME))
- add_ip4 = add_ip6 = FALSE;
- else if (!g_strcmp0 (slave_type, NM_SETTING_TEAM_SETTING_NAME)) {
- add_ip4 = add_ip6 = FALSE;
+ if (!g_strcmp0 (slave_type, NM_SETTING_TEAM_SETTING_NAME)) {
if (!add_page (editor, ce_page_team_port_new, editor->connection, error))
goto out;
} else if (!g_strcmp0 (slave_type, NM_SETTING_BRIDGE_SETTING_NAME)) {
- add_ip4 = add_ip6 = FALSE;
if (!add_page (editor, ce_page_bridge_port_new, editor->connection, error))
goto out;
}
- if (add_ip4 && !add_page (editor, ce_page_ip4_new, editor->connection, error))
+ if ( connection_supports_ip4 (editor->connection)
+ && !add_page (editor, ce_page_ip4_new, editor->connection, error))
goto out;
- if (add_ip6 && !add_page (editor, ce_page_ip6_new, editor->connection, error))
+ if ( connection_supports_ip6 (editor->connection)
+ && !add_page (editor, ce_page_ip6_new, editor->connection, error))
goto out;
/* After all pages are created, then kick off secrets requests that any
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]