diff options
Diffstat (limited to 'drivers/isimodem/call-barring.c')
-rw-r--r-- | drivers/isimodem/call-barring.c | 32 |
1 files changed, 20 insertions, 12 deletions
diff --git a/drivers/isimodem/call-barring.c b/drivers/isimodem/call-barring.c index fbbed8bc..6487ae8b 100644 --- a/drivers/isimodem/call-barring.c +++ b/drivers/isimodem/call-barring.c @@ -42,6 +42,7 @@ #include "isimodem.h" #include "isiutil.h" #include "ss.h" +#include "debug.h" struct barr_data { GIsiClient *client; @@ -60,7 +61,7 @@ static bool set_resp_cb(GIsiClient *client, const void *restrict data, } if (len < 3 || msg[0] != SS_SERVICE_COMPLETED_RESP) - goto error; + return false; if (msg[1] != SS_ACTIVATION && msg[1] != SS_DEACTIVATION) goto error; @@ -203,7 +204,7 @@ static bool query_resp_cb(GIsiClient *client, const void *restrict data, } if (len < 7 || msg[0] != SS_SERVICE_COMPLETED_RESP) - goto error; + return false; if (msg[1] != SS_INTERROGATION) goto error; @@ -241,8 +242,8 @@ static bool query_resp_cb(GIsiClient *client, const void *restrict data, break; default: - DBG("Skipping sub-block: 0x%04X (%zu bytes)", - g_isi_sb_iter_get_id(&iter), + DBG("Skipping sub-block: %s (%zd bytes)", + ss_subblock_name(g_isi_sb_iter_get_id(&iter)), g_isi_sb_iter_get_len(&iter)); break; } @@ -320,7 +321,7 @@ static bool set_passwd_resp_cb(GIsiClient *client, const void *restrict data, } if (len < 3 || msg[0] != SS_SERVICE_COMPLETED_RESP) - goto error; + return false; if (msg[1] != SS_GSM_PASSWORD_REGISTRATION) goto error; @@ -413,16 +414,23 @@ static void reachable_cb(GIsiClient *client, bool alive, uint16_t object, void *opaque) { struct ofono_call_barring *barr = opaque; + const char *debug = NULL; - if (alive == true) { - DBG("Resource 0x%02X, with version %03d.%03d reachable", - g_isi_client_resource(client), - g_isi_version_major(client), - g_isi_version_minor(client)); - g_idle_add(isi_call_barring_register, barr); + if (!alive) { + DBG("Unable to bootsrap call barring driver"); return; } - DBG("Unable to bootsrap call barring driver"); + + DBG("%s (v%03d.%03d) reachable", + pn_resource_name(g_isi_client_resource(client)), + g_isi_version_major(client), + g_isi_version_minor(client)); + + debug = getenv("OFONO_ISI_DEBUG"); + if (debug && (strcmp(debug, "all") == 0 || strcmp(debug, "ss") == 0)) + g_isi_client_set_debug(client, ss_debug, NULL); + + g_idle_add(isi_call_barring_register, barr); } |