Send commitlog mailing list submissions to
[email protected]
To subscribe or unsubscribe via the World Wide Web, visit
http://lists.openmoko.org/mailman/listinfo/commitlog
or, via email, send a message with subject or body 'help' to
[EMAIL PROTECTED]
You can reach the person managing the list at
[EMAIL PROTECTED]
When replying, please edit your Subject line so it is more specific
than "Re: Contents of commitlog digest..."
Today's Topics:
1. r3780 - in
trunk/src/target/OM-2007.2/applications/openmoko-messages2: . src
([EMAIL PROTECTED])
2. r3781 - in
trunk/src/target/OM-2007.2/applications/openmoko-dialer2: .
src/phone-kit ([EMAIL PROTECTED])
3. r3782 - in
trunk/src/target/OM-2007.2/applications/openmoko-dialer2: .
src/phone-kit ([EMAIL PROTECTED])
4. r3783 - in
trunk/src/target/OM-2007.2/applications/openmoko-dialer2: .
src/phone-kit ([EMAIL PROTECTED])
5. r3784 - trunk/src/target/gsm/src/gsmd
([EMAIL PROTECTED])
--- Begin Message ---
Author: chris
Date: 2008-01-07 12:35:11 +0100 (Mon, 07 Jan 2008)
New Revision: 3780
Modified:
trunk/src/target/OM-2007.2/applications/openmoko-messages2/ChangeLog
trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-notes.c
Log:
* src/sms-notes.c: (scroll_notes_to_bottom_cb), (note_progress_cb),
(page_shown):
Scroll the notes treeview to the end of the list when switching to the
page
Modified: trunk/src/target/OM-2007.2/applications/openmoko-messages2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-messages2/ChangeLog
2008-01-07 10:45:28 UTC (rev 3779)
+++ trunk/src/target/OM-2007.2/applications/openmoko-messages2/ChangeLog
2008-01-07 11:35:11 UTC (rev 3780)
@@ -1,3 +1,10 @@
+2008-01-07 Chris Lord <[EMAIL PROTECTED]>
+
+ * src/sms-notes.c: (scroll_notes_to_bottom_cb), (note_progress_cb),
+ (page_shown):
+ Scroll the notes treeview to the end of the list when switching to the
+ page
+
2007-12-21 Chris Lord <[EMAIL PROTECTED]>
* src/sms-main.c:
Modified:
trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-notes.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-notes.c
2008-01-07 10:45:28 UTC (rev 3779)
+++ trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-notes.c
2008-01-07 11:35:11 UTC (rev 3780)
@@ -89,6 +89,25 @@
}
}
+static void
+scroll_notes_to_bottom_cb (GtkAdjustment *vadjust, SmsData *data)
+{
+ /* Scroll note list to the bottom */
+ if (vadjust->value != (vadjust->upper - vadjust->page_size))
+ gtk_adjustment_set_value (vadjust,
+ vadjust->upper - vadjust->page_size);
+}
+
+static void
+note_progress_cb (JanaStoreView *store_view, gint percent, SmsData *data)
+{
+ if (percent != 100) return;
+
+ /* Remove scroll-to-bottom callback */
+ g_signal_handlers_disconnect_by_func (
+ data->notes_treeview, scroll_notes_to_bottom_cb, data);
+}
+
static gboolean
mark_messages_read_idle (SmsData *data)
{
@@ -161,6 +180,8 @@
G_CALLBACK (scroll_changed_cb), data);
g_signal_connect (vadjust, "value-changed",
G_CALLBACK (scroll_changed_cb), data);
+ g_signal_connect (vadjust, "changed",
+ G_CALLBACK (scroll_notes_to_bottom_cb), data);
/* Assign the recipient photo to the generic avatar icon, in case we
* can't find it later.
@@ -199,6 +220,8 @@
}
g_list_free (components);
+ note_progress_cb (store_view, 100, data);
+
return;
}
@@ -226,6 +249,8 @@
G_CALLBACK (note_changed_cb), data);
g_signal_connect (store_view, "modified",
G_CALLBACK (note_changed_cb), data);
+ g_signal_connect (store_view, "progress",
+ G_CALLBACK (note_progress_cb), data);
jana_store_view_start (store_view);
}
g_object_unref (store_view);
--- End Message ---
--- Begin Message ---
Author: chris
Date: 2008-01-07 16:15:22 +0100 (Mon, 07 Jan 2008)
New Revision: 3781
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_oper_get),
(retry_opers_get), (retry_get_imsi), (on_network_registered),
(moko_network_dispose), (net_msghandler), (phone_msghandler):
Retry retrieval of network details on connecting if they fail (ten
second time-out) - should help reliability of SMS sending
Modified: trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog
2008-01-07 11:35:11 UTC (rev 3780)
+++ trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog
2008-01-07 15:15:22 UTC (rev 3781)
@@ -1,5 +1,13 @@
2008-01-07 Chris Lord <[EMAIL PROTECTED]>
+ * src/phone-kit/moko-network.c: (retry_oper_get),
+ (retry_opers_get), (retry_get_imsi), (on_network_registered),
+ (moko_network_dispose), (net_msghandler), (phone_msghandler):
+ Retry retrieval of network details on connecting if they fail (ten
+ second time-out) - should help reliability of SMS sending
+
+2008-01-07 Chris Lord <[EMAIL PROTECTED]>
+
* src/phone-kit/moko-sms.c: (on_incoming_ds):
Correct a misinterpretation of how delivery status reports are stored
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-07 11:35:11 UTC (rev 3780)
+++
trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-network.c
2008-01-07 15:15:22 UTC (rev 3781)
@@ -68,6 +68,10 @@
gchar *network_name;
gchar *network_number;
gchar *imsi;
+
+ guint retry_oper;
+ guint retry_opers;
+ guint retry_imsi;
/* gsmd connection variables */
struct lgsm_handle *handle;
@@ -99,6 +103,31 @@
}
}
+/* Callbacks to retry retrieving of operator/sim details after registration */
+static gboolean
+retry_oper_get (MokoNetwork *network)
+{
+ g_debug ("Retrying operator retrieval");
+ lgsm_oper_get (network->priv->handle);
+ return TRUE;
+}
+
+static gboolean
+retry_opers_get (MokoNetwork *network)
+{
+ g_debug ("Retrying operators list retrieval");
+ lgsm_opers_get (network->priv->handle);
+ return TRUE;
+}
+
+static gboolean
+retry_get_imsi (MokoNetwork *network)
+{
+ g_debug ("Retrying imsi retrieval");
+ lgsm_get_imsi (network->priv->handle);
+ return TRUE;
+}
+
/* Callbacks for gsmd events */
static void
on_network_registered (MokoListener *listener,
@@ -116,8 +145,25 @@
{
case GSMD_NETREG_UNREG:
case GSMD_NETREG_UNREG_BUSY:
- /* Do nothing */
g_debug ("Searching for network");
+
+ /* Clear operator location */
+ priv->lac = 0;
+
+ /* Stop trying to get details */
+ if (priv->retry_oper) {
+ g_source_remove (priv->retry_oper);
+ priv->retry_oper = 0;
+ }
+ if (priv->retry_opers) {
+ g_source_remove (priv->retry_opers);
+ priv->retry_opers = 0;
+ }
+ if (priv->retry_imsi) {
+ g_source_remove (priv->retry_imsi);
+ priv->retry_imsi = 0;
+ }
+
break;
case GSMD_NETREG_DENIED:
/* This may be a pin issue*/
@@ -138,6 +184,18 @@
/* Retrieve IMSI to get home country code */
lgsm_get_imsi (handle);
+
+ /* Add a time-out in case retrieval fails - retry every 10 seconds */
+ while (g_source_remove_by_user_data (listener));
+ priv->retry_oper = g_timeout_add_seconds (10,
+ (GSourceFunc)retry_oper_get,
+ listener);
+ priv->retry_opers = g_timeout_add_seconds (10,
+
(GSourceFunc)retry_opers_get,
+ listener);
+ priv->retry_imsi = g_timeout_add_seconds (10,
+ (GSourceFunc)retry_get_imsi,
+ listener);
}
break;
@@ -248,6 +306,19 @@
network = MOKO_NETWORK (object);
priv = network->priv;
+ if (priv->retry_oper) {
+ g_source_remove (priv->retry_oper);
+ priv->retry_oper = 0;
+ }
+ if (priv->retry_opers) {
+ g_source_remove (priv->retry_opers);
+ priv->retry_opers = 0;
+ }
+ if (priv->retry_imsi) {
+ g_source_remove (priv->retry_imsi);
+ priv->retry_imsi = 0;
+ }
+
if (priv->handle) {
lgsm_exit (priv->handle);
priv->handle = NULL;
@@ -472,12 +543,20 @@
}
break;
case GSMD_NETWORK_OPER_GET :
+ if (priv->retry_oper) {
+ g_source_remove (priv->retry_oper);
+ priv->retry_oper = 0;
+ }
for (l = priv->listeners; l; l = l->next) {
moko_listener_on_network_name (MOKO_LISTENER (l->data),
priv->handle, oper);
}
break;
case GSMD_NETWORK_OPER_LIST :
+ if (priv->retry_opers) {
+ g_source_remove (priv->retry_opers);
+ priv->retry_opers = 0;
+ }
for (l = priv->listeners; l; l = l->next) {
moko_listener_on_network_list (MOKO_LISTENER (l->data),
priv->handle, opers);
@@ -501,8 +580,11 @@
switch (gmh->msg_subtype)
{
case GSMD_PHONE_GET_IMSI:
- for (l = priv->listeners; l; l = l->next)
- {
+ if (priv->retry_imsi) {
+ g_source_remove (priv->retry_imsi);
+ priv->retry_imsi = 0;
+ }
+ for (l = priv->listeners; l; l = l->next) {
moko_listener_on_imsi (MOKO_LISTENER (l->data), priv->handle,
(const gchar *)gmh + sizeof (*gmh));
}
--- End Message ---
--- Begin Message ---
Author: chris
Date: 2008-01-07 16:48:27 +0100 (Mon, 07 Jan 2008)
New Revision: 3782
Modified:
trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog
trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-sms.c
Log:
* src/phone-kit/moko-sms.c: (on_incoming_ds):
Don't check the stat of the delivery report, no need as we have the ref
anyway and I must be misinterpreting its meaning. Also switch around a
debug comment to make it more clear.
Modified: trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog
2008-01-07 15:15:22 UTC (rev 3781)
+++ trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog
2008-01-07 15:48:27 UTC (rev 3782)
@@ -1,5 +1,12 @@
2008-01-07 Chris Lord <[EMAIL PROTECTED]>
+ * src/phone-kit/moko-sms.c: (on_incoming_ds):
+ Don't check the stat of the delivery report, no need as we have the ref
+ anyway and I must be misinterpreting its meaning. Also switch around a
+ debug comment to make it more clear.
+
+2008-01-07 Chris Lord <[EMAIL PROTECTED]>
+
* src/phone-kit/moko-network.c: (retry_oper_get),
(retry_opers_get), (retry_get_imsi), (on_network_registered),
(moko_network_dispose), (net_msghandler), (phone_msghandler):
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-07 15:15:22 UTC (rev 3781)
+++
trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-sms.c
2008-01-07 15:48:27 UTC (rev 3782)
@@ -349,8 +349,9 @@
MokoSms *moko_sms = MOKO_SMS (listener);
MokoSmsPrivate *priv = moko_sms->priv;
- if ((sms->payload.coding_scheme == TP_STATUS_RECEIVED_OK) &&
- (sms->stat == LGSM_SMS_STO_SENT)) {
+ g_debug ("Received sent SMS status report");
+ if ((sms->payload.coding_scheme == TP_STATUS_RECEIVED_OK)/* &&
+ (sms->stat == LGSM_SMS_STO_SENT)*/) {
gchar *ref = g_strdup_printf ("%d", sms->index);
JanaStoreView *view = jana_store_get_view (priv->sms_store);
MokoSmsStatusReport *sr = g_slice_new (MokoSmsStatusReport);
@@ -358,7 +359,7 @@
sr->moko_sms = g_object_ref (moko_sms);
sr->ref = ref;
- g_debug ("Received sent SMS status report");
+ g_debug ("Report signals success");
jana_store_view_add_match (view, JANA_STORE_VIEW_CATEGORY, "Sending");
g_signal_connect (view, "added",
G_CALLBACK (status_report_added_cb), sr);
--- End Message ---
--- Begin Message ---
Author: chris
Date: 2008-01-07 16:56:58 +0100 (Mon, 07 Jan 2008)
New Revision: 3783
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: (stop_retrying),
(on_network_registered), (moko_network_dispose):
Fix possible infinite retrying(?), increase time-out to 15 seconds
Modified: trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog
2008-01-07 15:48:27 UTC (rev 3782)
+++ trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog
2008-01-07 15:56:58 UTC (rev 3783)
@@ -1,5 +1,11 @@
2008-01-07 Chris Lord <[EMAIL PROTECTED]>
+ * src/phone-kit/moko-network.c: (stop_retrying),
+ (on_network_registered), (moko_network_dispose):
+ Fix possible infinite retrying(?), increase time-out to 15 seconds
+
+2008-01-07 Chris Lord <[EMAIL PROTECTED]>
+
* src/phone-kit/moko-sms.c: (on_incoming_ds):
Don't check the stat of the delivery report, no need as we have the ref
anyway and I must be misinterpreting its meaning. Also switch around a
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-07 15:48:27 UTC (rev 3782)
+++
trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-network.c
2008-01-07 15:56:58 UTC (rev 3783)
@@ -128,6 +128,24 @@
return TRUE;
}
+static void
+stop_retrying (MokoNetwork *network)
+{
+ /* Stop trying to get details */
+ if (network->priv->retry_oper) {
+ g_source_remove (network->priv->retry_oper);
+ network->priv->retry_oper = 0;
+ }
+ if (network->priv->retry_opers) {
+ g_source_remove (network->priv->retry_opers);
+ network->priv->retry_opers = 0;
+ }
+ if (network->priv->retry_imsi) {
+ g_source_remove (network->priv->retry_imsi);
+ network->priv->retry_imsi = 0;
+ }
+}
+
/* Callbacks for gsmd events */
static void
on_network_registered (MokoListener *listener,
@@ -151,18 +169,7 @@
priv->lac = 0;
/* Stop trying to get details */
- if (priv->retry_oper) {
- g_source_remove (priv->retry_oper);
- priv->retry_oper = 0;
- }
- if (priv->retry_opers) {
- g_source_remove (priv->retry_opers);
- priv->retry_opers = 0;
- }
- if (priv->retry_imsi) {
- g_source_remove (priv->retry_imsi);
- priv->retry_imsi = 0;
- }
+ stop_retrying (MOKO_NETWORK (listener));
break;
case GSMD_NETREG_DENIED:
@@ -186,14 +193,14 @@
lgsm_get_imsi (handle);
/* Add a time-out in case retrieval fails - retry every 10 seconds */
- while (g_source_remove_by_user_data (listener));
- priv->retry_oper = g_timeout_add_seconds (10,
+ 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 (10,
+ priv->retry_opers = g_timeout_add_seconds (15,
(GSourceFunc)retry_opers_get,
listener);
- priv->retry_imsi = g_timeout_add_seconds (10,
+ priv->retry_imsi = g_timeout_add_seconds (15,
(GSourceFunc)retry_get_imsi,
listener);
}
@@ -306,18 +313,7 @@
network = MOKO_NETWORK (object);
priv = network->priv;
- if (priv->retry_oper) {
- g_source_remove (priv->retry_oper);
- priv->retry_oper = 0;
- }
- if (priv->retry_opers) {
- g_source_remove (priv->retry_opers);
- priv->retry_opers = 0;
- }
- if (priv->retry_imsi) {
- g_source_remove (priv->retry_imsi);
- priv->retry_imsi = 0;
- }
+ stop_retrying (MOKO_NETWORK (object));
if (priv->handle) {
lgsm_exit (priv->handle);
--- End Message ---
--- Begin Message ---
Author: erin_yueh
Date: 2008-01-08 08:03:12 +0100 (Tue, 08 Jan 2008)
New Revision: 3784
Modified:
trunk/src/target/gsm/src/gsmd/usock.c
Log:
gsmd: fix segfault for list operator names (Sean Chiang)
Modified: trunk/src/target/gsm/src/gsmd/usock.c
===================================================================
--- trunk/src/target/gsm/src/gsmd/usock.c 2008-01-07 15:56:58 UTC (rev
3783)
+++ trunk/src/target/gsm/src/gsmd/usock.c 2008-01-08 07:03:12 UTC (rev
3784)
@@ -767,69 +767,94 @@
return ret;
}
-static int network_opers_parse(const char *str, struct gsmd_msg_oper out[])
+static int network_opers_parse(const char *str, struct gsmd_msg_oper **out)
{
int len = 0;
- int stat, n;
- char opname_longalpha[16 + 1];
- char opname_shortalpha[8 + 1];
- char opname_num[6 + 1];
+ struct gsm_extrsp *er;
+ char buf[64];
+ char *head, *tail, *ptr;
+ struct gsmd_msg_oper *out2;
if (strncmp(str, "+COPS: ", 7))
- goto final;
- str += 7;
+ return -EINVAL;
- while (*str == '(') {
- if (out) {
- out->is_last = 0;
- if (sscanf(str,
- "(%i,\"%16[^\"]\","
- "\"%8[^\"]\",\"%6[0-9]\")%n",
- &stat,
- opname_longalpha,
- opname_shortalpha,
- opname_num,
- &n) < 4)
- goto final;
- out->stat = stat;
- memcpy(out->opname_longalpha, opname_longalpha,
- sizeof(out->opname_longalpha));
- memcpy(out->opname_shortalpha, opname_shortalpha,
- sizeof(out->opname_shortalpha));
- memcpy(out->opname_num, opname_num,
- sizeof(out->opname_num));
- } else
- if (sscanf(str,
- "(%*i,\"%*[^\"]\","
- "\"%*[^\"]\",\"%*[0-9]\")%n",
- &n) < 0)
- goto final;
- if (n < 10 || str[n - 1] != ')')
- goto final;
- if (str[n] == ',')
- n ++;
- str += n;
- len ++;
- if (out)
- out ++;
+ ptr = str;
+ while (*str) {
+ if ( *str == '(' && isdigit(*(str+1)) ) {
+ len++;
+ str+=2;
+ }
+ else
+ str++;
}
-final:
- if (out)
- out->is_last = 1;
+
+ *out = talloc_size(__gu_ctx, sizeof(struct gsmd_msg_oper) * (len + 1));
+
+ if (!out)
+ return -ENOMEM;
+
+ out2 = *out;
+ str = ptr;
+
+ while (*str) {
+ if ( *str == '(' )
+ head = str;
+ else if ( *str == ')' ) {
+ tail = str;
+
+ memset(buf, '\0', sizeof(buf));
+ strncpy(buf, head+1, (tail-head-1));
+
+ DEBUGP("buf: %s\n", buf);
+
+ er = extrsp_parse(gsmd_tallocs, buf);
+
+ if ( !er )
+ return -ENOMEM;
+
+ //extrsp_dump(er);
+
+ if ( er->num_tokens == 4 &&
+ er->tokens[0].type ==
GSMD_ECMD_RTT_NUMERIC &&
+ er->tokens[1].type ==
GSMD_ECMD_RTT_STRING &&
+ er->tokens[2].type ==
GSMD_ECMD_RTT_STRING &&
+ er->tokens[3].type ==
GSMD_ECMD_RTT_STRING ) {
+
+ /*
+ * +COPS=? +COPS: [list of supported
(<stat>,long alphanumeric <oper>
+ * ,short alphanumeric <oper>,numeric
<oper>)s]
+ */
+
+ out2->stat = er->tokens[0].u.numeric;
+ strcpy(out2->opname_longalpha,
er->tokens[1].u.string);
+ strcpy(out2->opname_shortalpha,
er->tokens[2].u.string);
+ strcpy(out2->opname_num,
er->tokens[3].u.string);
+ }
+ else {
+ DEBUGP("Invalid Input : Parse error\n");
+ talloc_free(*out);
+ return -EINVAL;
+ }
+
+ talloc_free(er);
+ out2->is_last = 0;
+ out2 ++;
+ }
+
+ str ++;
+ }
+
+ out2->is_last = 1;
return len;
}
static int network_opers_cb(struct gsmd_atcmd *cmd, void *ctx, char *resp)
{
struct gsmd_user *gu = ctx;
- struct gsmd_msg_oper *buf;
+ struct gsmd_msg_oper *buf = NULL;
int len, ret;
- len = network_opers_parse(resp, 0);
- buf = talloc_size(__gu_ctx, sizeof(struct gsmd_msg_oper) * (len + 1));
- if (!buf)
- return -ENOMEM;
- network_opers_parse(resp, buf);
+ len = network_opers_parse(resp, &buf);
ret = gsmd_ucmd_submit(gu, GSMD_MSG_NETWORK, GSMD_NETWORK_OPER_LIST,
cmd->id, sizeof(*buf) * (len + 1), buf);
--- End Message ---
_______________________________________________
commitlog mailing list
[email protected]
http://lists.openmoko.org/mailman/listinfo/commitlog