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

chris at sita.openmoko.org chris at sita.openmoko.org
Mon Jan 14 16:20:01 CET 2008


Author: chris
Date: 2008-01-14 16:20:00 +0100 (Mon, 14 Jan 2008)
New Revision: 3828

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
   trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-sms.c
Log:
        * src/phone-kit/moko-network.c: (retry_oper_get),
        (retry_opers_get), (retry_get_imsi), (on_network_registered),
        (net_msghandler), (phone_msghandler), (moko_network_init):
        Only retry n amount of times before giving up on getting imsi,
        subscriber number and network number

        * src/phone-kit/moko-sms.c: (moko_sms_send):
        Don't rely on subscriber number to send messages


Modified: trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog	2008-01-14 14:21:51 UTC (rev 3827)
+++ trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog	2008-01-14 15:20:00 UTC (rev 3828)
@@ -1,5 +1,16 @@
 2008-01-14  Chris Lord  <chris at openedhand.com>
 
+	* src/phone-kit/moko-network.c: (retry_oper_get),
+	(retry_opers_get), (retry_get_imsi), (on_network_registered),
+	(net_msghandler), (phone_msghandler), (moko_network_init):
+	Only retry n amount of times before giving up on getting imsi,
+	subscriber number and network number
+
+	* src/phone-kit/moko-sms.c: (moko_sms_send):
+	Don't rely on subscriber number to send messages
+
+2008-01-14  Chris Lord  <chris at openedhand.com>
+
 	Patch by Roman Moravcik <roman.moravcik at gmail.com>, bug #1153
 
 	* src/phone-kit/moko-dialer.c: (on_call_progress):

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-14 14:21:51 UTC (rev 3827)
+++ trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-network.c	2008-01-14 15:20:00 UTC (rev 3828)
@@ -41,6 +41,9 @@
 #define MOKO_NETWORK_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE(obj, \
         MOKO_TYPE_NETWORK, MokoNetworkPrivate))
 
+#define RETRY_MAX 5
+#define RETRY_DELAY 15
+
 enum {
   PROP_STATUS = 1,
 };
@@ -70,8 +73,11 @@
   gchar                     *imsi;
   
   guint                     retry_oper;
+  gint                      retry_oper_n;
   guint                     retry_opers;
+  gint                      retry_opers_n;
   guint                     retry_imsi;
+  gint                      retry_imsi_n;
 
   /* gsmd connection variables */
   struct lgsm_handle        *handle;
@@ -107,25 +113,26 @@
 static gboolean
 retry_oper_get (MokoNetwork *network)
 {
-  g_debug ("Retrying operator retrieval");
+  g_debug ("Retrying operator retrieval (%d)", network->priv->retry_oper_n);
   lgsm_oper_get (network->priv->handle);
-  return TRUE;
+  return (--network->priv->retry_oper_n) ? TRUE : FALSE;
 }
 
 static gboolean
 retry_opers_get (MokoNetwork *network)
 {
-  g_debug ("Retrying operators list retrieval");
+  g_debug ("Retrying operators list retrieval (%d)",
+           network->priv->retry_opers_n);
   lgsm_opers_get (network->priv->handle);
-  return TRUE;
+  return (--network->priv->retry_opers_n) ? TRUE : FALSE;
 }
 
 static gboolean
 retry_get_imsi (MokoNetwork *network)
 {
-  g_debug ("Retrying imsi retrieval");
+  g_debug ("Retrying imsi retrieval (%d)", network->priv->retry_imsi_n);
   lgsm_get_imsi (network->priv->handle);
-  return TRUE;
+  return (--network->priv->retry_imsi_n) ? TRUE : FALSE;
 }
 
 static void
@@ -195,17 +202,21 @@
         /* Retrieve IMSI to get home country code */
         lgsm_get_imsi (handle);
         
-        /* Add a time-out in case retrieval fails - retry every 10 seconds */
+        /* Add a time-out in case retrieval fails,
+         * retry every RETRY_DELAY seconds */
         stop_retrying (MOKO_NETWORK (listener));
-        priv->retry_oper = g_timeout_add_seconds (15,
-                                                  (GSourceFunc)retry_oper_get,
-                                                  listener);
-        priv->retry_opers = g_timeout_add_seconds (15,
-                                                   (GSourceFunc)retry_opers_get,
-                                                   listener);
-        priv->retry_imsi = g_timeout_add_seconds (15,
-                                                  (GSourceFunc)retry_get_imsi,
-                                                  listener);
+        if (priv->retry_oper_n)
+          priv->retry_oper = g_timeout_add_seconds (RETRY_DELAY,
+                                                    (GSourceFunc)retry_oper_get,
+                                                    listener);
+        if (priv->retry_opers_n)
+          priv->retry_opers = g_timeout_add_seconds (RETRY_DELAY,
+                                                     (GSourceFunc)retry_opers_get,
+                                                     listener);
+        if (priv->retry_imsi_n)
+          priv->retry_imsi = g_timeout_add_seconds (RETRY_DELAY,
+                                                    (GSourceFunc)retry_get_imsi,
+                                                    listener);
       }
       
       break;
@@ -557,6 +568,7 @@
       if (priv->retry_oper) {
         g_source_remove (priv->retry_oper);
         priv->retry_oper = 0;
+        priv->retry_oper_n = RETRY_MAX;
       }
       for (l = priv->listeners; l; l = l->next) {
         moko_listener_on_network_name (MOKO_LISTENER (l->data),
@@ -567,6 +579,7 @@
       if (priv->retry_opers) {
         g_source_remove (priv->retry_opers);
         priv->retry_opers = 0;
+        priv->retry_opers_n = RETRY_MAX;
       }
       for (l = priv->listeners; l; l = l->next) {
         moko_listener_on_network_list (MOKO_LISTENER (l->data),
@@ -594,6 +607,7 @@
       if (priv->retry_imsi) {
         g_source_remove (priv->retry_imsi);
         priv->retry_imsi = 0;
+        priv->retry_imsi_n = RETRY_MAX;
       }
       for (l = priv->listeners; l; l = l->next) {
         moko_listener_on_imsi (MOKO_LISTENER (l->data), priv->handle,
@@ -754,6 +768,10 @@
   MokoNetworkPrivate *priv;
 
   priv = network->priv = MOKO_NETWORK_GET_PRIVATE (network);
+  
+  priv->retry_oper_n = RETRY_MAX;
+  priv->retry_opers_n = RETRY_MAX;
+  priv->retry_imsi_n = RETRY_MAX;
 
   network_init_gsmd (network);
 }

Modified: trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-sms.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-sms.c	2008-01-14 14:21:51 UTC (rev 3827)
+++ trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-sms.c	2008-01-14 15:20:00 UTC (rev 3828)
@@ -638,8 +638,7 @@
     return FALSE;
   }
   
-  if (!moko_network_get_subscriber_number (priv->network, &sub_num, error))
-    return FALSE;
+  moko_network_get_subscriber_number (priv->network, &sub_num, NULL);
   
   /* Ask for delivery report */
   sms.ask_ds = report ? 1 : 0;
@@ -693,9 +692,11 @@
     g_free (full_number);
   } else
     jana_note_set_recipient (note, number);
-  jana_note_set_author (note, sub_num);
+  if (sub_num) {
+    jana_note_set_author (note, sub_num);
+    g_free (sub_num);
+  }
   g_free (dialcode);
-  g_free (sub_num);
   
   jana_note_set_body (note, message);
   if (report) {





More information about the commitlog mailing list