r4001 - in trunk/src/target/OM-2007.2/applications/openmoko-dialer2: . src/phone-kit

chris at sita.openmoko.org chris at sita.openmoko.org
Thu Jan 31 12:28:55 CET 2008


Author: chris
Date: 2008-01-31 12:28:51 +0100 (Thu, 31 Jan 2008)
New Revision: 4001

Modified:
   trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog
   trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-network.c
Log:
        * src/phone-kit/moko-network.c: (retry_register),
        (on_network_registered), (moko_network_init):
        Add a 60-second time-out for network registration before retrying


Modified: trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog	2008-01-31 11:20:26 UTC (rev 4000)
+++ trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog	2008-01-31 11:28:51 UTC (rev 4001)
@@ -1,5 +1,11 @@
 2008-01-31  Chris Lord  <chris at openedhand.com>
 
+	* src/phone-kit/moko-network.c: (retry_register),
+	(on_network_registered), (moko_network_init):
+	Add a 60-second time-out for network registration before retrying
+
+2008-01-31  Chris Lord  <chris at openedhand.com>
+
 	* src/phone-kit/moko-network.c: (on_network_registered):
 	Register to network on unregister
 

Modified: trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-network.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-network.c	2008-01-31 11:20:26 UTC (rev 4000)
+++ trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-network.c	2008-01-31 11:28:51 UTC (rev 4001)
@@ -66,6 +66,8 @@
   gchar                     *network_number;
   gchar                     *imsi;
   
+  guint                     retry_register;
+  gint                      retry_register_n;
   guint                     retry_oper;
   gint                      retry_oper_n;
   guint                     retry_opern;
@@ -132,6 +134,14 @@
   return (--network->priv->retry_imsi_n) ? TRUE : FALSE;
 }
 
+static gboolean
+retry_register (MokoNetwork *network)
+{
+  g_debug ("Retrying network registration");
+  lgsm_netreg_register (network->priv->handle, "\0     ");
+  return (--network->priv->retry_register_n) ? TRUE : FALSE;
+}
+
 static void
 stop_retrying (MokoNetwork *network)
 {
@@ -168,7 +178,15 @@
     case GSMD_NETREG_UNREG:
       /* Start searching for network */
       /* Note: Operator name is a 6 character string, thus: */
-      if (priv->registered != type) lgsm_netreg_register (handle, "\0     ");
+      if (priv->registered != type) {
+        if (!priv->retry_register) {
+          g_debug ("Registering to network");
+          lgsm_netreg_register (handle, "\0     ");
+          priv->retry_register = g_timeout_add_seconds (RETRY_DELAY,
+                                                    (GSourceFunc)retry_register,
+                                                    listener);
+        }
+      }
     case GSMD_NETREG_UNREG_BUSY:
       g_debug ("Searching for network");
       
@@ -189,6 +207,12 @@
     case GSMD_NETREG_REG_ROAMING:
       g_debug ("Network registered: LocationAreaCode: %x. CellID: %x.", lac, cell);
       
+      if (priv->retry_register) {
+        g_source_remove (priv->retry_register);
+        priv->retry_register = 0;
+        priv->retry_register_n = RETRY_MAX;
+      }
+      
       /* Retrieve details when we switch location/type */
       if ((priv->registered != type) || (priv->lac != lac)) {
         priv->lac = lac;
@@ -828,6 +852,7 @@
 
   priv = network->priv = MOKO_NETWORK_GET_PRIVATE (network);
   
+  priv->retry_register_n = RETRY_MAX;
   priv->retry_oper_n = RETRY_MAX;
   priv->retry_opern_n = RETRY_MAX;
   priv->retry_imsi_n = RETRY_MAX;





More information about the commitlog mailing list