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