diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/mm-generic-gsm.c | 16 | ||||
-rw-r--r-- | src/mm-serial.c | 2 |
2 files changed, 11 insertions, 7 deletions
diff --git a/src/mm-generic-gsm.c b/src/mm-generic-gsm.c index 2713cc00..1e33a99c 100644 --- a/src/mm-generic-gsm.c +++ b/src/mm-generic-gsm.c @@ -110,7 +110,7 @@ flash_done (MMSerial *serial, gpointer user_data) char *responses[] = { "OK", "ERROR", "ERR", NULL }; guint id = 0; - if (mm_serial_send_command_string (serial, "AT E0")) + if (mm_serial_send_command_string (serial, "ATZ E0")) id = mm_serial_wait_for_reply (serial, 10, responses, responses, init_done, user_data); if (!id) { @@ -262,10 +262,11 @@ register_auto_done (MMSerial *serial, switch (reply_index) { case 0: - g_message ("Registered on Home network"); + info->error = g_error_new (MM_MODEM_ERROR, MM_MODEM_ERROR_GENERAL, + "%s", "Automatic registration failed: not registered and not searching."); break; case 1: - g_message ("Registered on Roaming network"); + g_message ("Registered on Home network"); break; case 2: mm_callback_info_set_data (info, "modem", g_object_ref (serial), g_object_unref); @@ -273,8 +274,11 @@ register_auto_done (MMSerial *serial, return; break; case 3: - info->error = g_error_new (MM_MODEM_ERROR, MM_MODEM_ERROR_GENERAL, - "%s", "Automatic registration failed: not registered and not searching."); + info->error = g_error_new (MM_MODEM_ERROR, MM_MODEM_ERROR_GENERAL, "%s", + "Automatic registration failed: registration denied"); + break; + case 4: + g_message ("Registered on Roaming network"); break; case -1: info->error = g_error_new (MM_MODEM_ERROR, MM_MODEM_ERROR_GENERAL, "%s", "Automatic registration timed out"); @@ -290,7 +294,7 @@ register_auto_done (MMSerial *serial, static void register_auto (MMModem *modem, MMCallbackInfo *info) { - char *responses[] = { "+CREG: 0,1", "+CREG: 0,5", "+CREG: 0,2", "+CREG: 0,0", NULL }; + char *responses[] = { "+CREG: 0,0", "+CREG: 0,1", "+CREG: 0,2", "+CREG: 0,3", "+CREG: 0,5", NULL }; char *terminators[] = { "OK", "ERROR", "ERR", NULL }; guint id = 0; diff --git a/src/mm-serial.c b/src/mm-serial.c index a9f3f349..0f267a21 100644 --- a/src/mm-serial.c +++ b/src/mm-serial.c @@ -746,7 +746,7 @@ mm_serial_wait_for_reply (MMSerial *self, info->callback = callback; info->user_data = user_data; info->reply_index = -1; - info->timeout = timeout * 1000; + info->timeout = timeout; info->start = time (NULL); return mm_serial_set_pending (self, timeout, wait_for_reply_got_data, info, wait_for_reply_done); |