about summary refs log tree commit diff
path: root/src/modem-manager/nm-modem-cdma.c
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2011-04-08 07:30:59 +0200
committerMichael Biebl <biebl@debian.org>2011-04-08 07:30:59 +0200
commitf75dd6fd1975146623052b843b182dc32c3fbe46 (patch)
tree05ba60b772670f038c9a1fbff940ec5d3e28d870 /src/modem-manager/nm-modem-cdma.c
parentc980bdf58dc973dd5617aaa6f9466f9e44fcbf58 (diff)
Imported Upstream version 0.8.998 upstream/0.8.998
Diffstat (limited to 'src/modem-manager/nm-modem-cdma.c')
-rw-r--r--src/modem-manager/nm-modem-cdma.c40
1 files changed, 36 insertions, 4 deletions
diff --git a/src/modem-manager/nm-modem-cdma.c b/src/modem-manager/nm-modem-cdma.c
index c32c1822..5db6a84f 100644
--- a/src/modem-manager/nm-modem-cdma.c
+++ b/src/modem-manager/nm-modem-cdma.c
@@ -15,16 +15,20 @@
  * with this program; if not, write to the Free Software Foundation, Inc.,
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  *
- * Copyright (C) 2009 - 2010 Red Hat, Inc.
+ * Copyright (C) 2009 - 2011 Red Hat, Inc.
  * Copyright (C) 2009 Novell, Inc.
  */
 
+#include "config.h"
+
 #include <string.h>
+#include <glib/gi18n.h>
 
 #include "nm-dbus-glib-types.h"
 #include "nm-modem-cdma.h"
 #include "nm-modem-types.h"
 #include "nm-device.h"
+#include "nm-device-private.h"
 #include "nm-dbus-manager.h"
 #include "nm-setting-connection.h"
 #include "nm-setting-cdma.h"
@@ -270,6 +274,33 @@ real_check_connection_compatible (NMModem *modem,
 }
 
 static gboolean
+real_complete_connection (NMModem *modem,
+                          NMConnection *connection,
+                          const GSList *existing_connections,
+                          GError **error)
+{
+	NMSettingCdma *s_cdma;
+
+	s_cdma = (NMSettingCdma *) nm_connection_get_setting (connection, NM_TYPE_SETTING_CDMA);
+	if (!s_cdma) {
+		s_cdma = (NMSettingCdma *) nm_setting_cdma_new ();
+		nm_connection_add_setting (connection, NM_SETTING (s_cdma));
+	}
+
+	if (!nm_setting_cdma_get_number (s_cdma))
+		g_object_set (G_OBJECT (s_cdma), NM_SETTING_CDMA_NUMBER, "#777", NULL);
+
+	nm_utils_complete_generic (connection,
+	                           NM_SETTING_CDMA_SETTING_NAME,
+	                           existing_connections,
+	                           _("CDMA connection %d"),
+	                           NULL,
+	                           FALSE); /* No IPv6 yet by default */
+
+	return TRUE;
+}
+
+static gboolean
 real_get_user_pass (NMModem *modem,
                     NMConnection *connection,
                     const char **user,
@@ -296,7 +327,7 @@ real_get_setting_name (NMModem *modem)
 }
 
 static void
-real_deactivate_quickly (NMModem *modem, NMDevice *device)
+real_deactivate (NMModem *modem, NMDevice *device)
 {
 	NMModemCdmaPrivate *priv = NM_MODEM_CDMA_GET_PRIVATE (modem);
 
@@ -308,7 +339,7 @@ real_deactivate_quickly (NMModem *modem, NMDevice *device)
 		priv->call = NULL;
 	}
 
-	NM_MODEM_CLASS (nm_modem_cdma_parent_class)->deactivate_quickly (modem, device);	
+	NM_MODEM_CLASS (nm_modem_cdma_parent_class)->deactivate (modem, device);	
 }
 
 /*****************************************************************************/
@@ -344,8 +375,9 @@ nm_modem_cdma_class_init (NMModemCdmaClass *klass)
 	modem_class->get_setting_name = real_get_setting_name;
 	modem_class->get_best_auto_connection = real_get_best_auto_connection;
 	modem_class->check_connection_compatible = real_check_connection_compatible;
+	modem_class->complete_connection = real_complete_connection;
 	modem_class->act_stage1_prepare = real_act_stage1_prepare;
-	modem_class->deactivate_quickly = real_deactivate_quickly;
+	modem_class->deactivate = real_deactivate;
 
 	dbus_g_error_domain_register (NM_CDMA_ERROR, NULL, NM_TYPE_CDMA_ERROR);
 }