From e0b6a058a2b42095a753817ec6c030e618d9f540 Mon Sep 17 00:00:00 2001 From: Pekka Pessi Date: Tue, 4 Jan 2011 17:48:33 +0200 Subject: [PATCH] isimodem: use simplified client interface --- drivers/isimodem/call-barring.c | 12 ++++---- drivers/isimodem/call-forwarding.c | 12 ++++---- drivers/isimodem/call-settings.c | 8 +++--- drivers/isimodem/cbs.c | 11 ++++---- drivers/isimodem/devinfo.c | 18 ++++++------ drivers/isimodem/gprs-context.c | 25 ++++++++--------- drivers/isimodem/gprs.c | 23 ++++++++------- drivers/isimodem/network-registration.c | 31 +++++++++++---------- drivers/isimodem/phonebook.c | 7 ++--- drivers/isimodem/radio-settings.c | 4 +-- drivers/isimodem/sim.c | 37 ++++++++++++------------- drivers/isimodem/sms.c | 26 +++++++++-------- drivers/isimodem/ussd.c | 11 ++++---- drivers/isimodem/voicecall.c | 10 +++---- 14 files changed, 117 insertions(+), 118 deletions(-) diff --git a/drivers/isimodem/call-barring.c b/drivers/isimodem/call-barring.c index 35ea2ba7..26ca5454 100644 --- a/drivers/isimodem/call-barring.c +++ b/drivers/isimodem/call-barring.c @@ -139,8 +139,8 @@ static void isi_set(struct ofono_call_barring *barr, const char *lock, if (cbd == NULL || bd == NULL) goto error; - if (g_isi_client_send(bd->client, msg, sizeof(msg), SS_TIMEOUT, - set_resp_cb, cbd, g_free) != NULL) + if (g_isi_client_send(bd->client, msg, sizeof(msg), + set_resp_cb, cbd, g_free)) return; error: @@ -258,8 +258,8 @@ static void isi_query(struct ofono_call_barring *barr, const char *lock, if (cbd == NULL || bd == NULL) goto error; - if (g_isi_client_send(bd->client, msg, sizeof(msg), SS_TIMEOUT, - query_resp_cb, cbd, g_free) != NULL) + if (g_isi_client_send(bd->client, msg, sizeof(msg), + query_resp_cb, cbd, g_free)) return; error: @@ -321,8 +321,8 @@ static void isi_set_passwd(struct ofono_call_barring *barr, const char *lock, if (cbd == NULL || bd == NULL) goto error; - if (g_isi_client_send(bd->client, msg, sizeof(msg), SS_TIMEOUT, - set_passwd_resp_cb, cbd, g_free) != NULL) + if (g_isi_client_send(bd->client, msg, sizeof(msg), + set_passwd_resp_cb, cbd, g_free)) return; error: diff --git a/drivers/isimodem/call-forwarding.c b/drivers/isimodem/call-forwarding.c index ef6b16b5..3a984490 100644 --- a/drivers/isimodem/call-forwarding.c +++ b/drivers/isimodem/call-forwarding.c @@ -253,8 +253,8 @@ static void isi_registration(struct ofono_call_forwarding *cf, int type, memcpy((char *) &msg[13], ucs2, strlen(number->number) * 2); g_free(ucs2); - if (g_isi_client_send(fd->client, msg, 7 + msg[8], SS_TIMEOUT, - registration_resp_cb, cbd, g_free) != NULL) + if (g_isi_client_send(fd->client, msg, 7 + msg[8], + registration_resp_cb, cbd, g_free)) return; error: @@ -316,8 +316,8 @@ static void isi_erasure(struct ofono_call_forwarding *cf, int type, int cls, if (cbd == NULL || fd == NULL || ss_code < 0) goto error; - if (g_isi_client_send(fd->client, msg, sizeof(msg), SS_TIMEOUT, - erasure_resp_cb, cbd, g_free) != NULL) + if (g_isi_client_send(fd->client, msg, sizeof(msg), + erasure_resp_cb, cbd, g_free)) return; error: @@ -411,8 +411,8 @@ static void isi_query(struct ofono_call_forwarding *cf, int type, int cls, if (cbd == NULL || fd == NULL || cls != 7 || ss_code < 0) goto error; - if (g_isi_client_send(fd->client, msg, sizeof(msg), SS_TIMEOUT, - query_resp_cb, cbd, g_free) != NULL) + if (g_isi_client_send(fd->client, msg, sizeof(msg), + query_resp_cb, cbd, g_free)) return; error: diff --git a/drivers/isimodem/call-settings.c b/drivers/isimodem/call-settings.c index 5eb39d16..51a761f9 100644 --- a/drivers/isimodem/call-settings.c +++ b/drivers/isimodem/call-settings.c @@ -172,8 +172,8 @@ static void isi_cw_query(struct ofono_call_settings *cs, int cls, if (cbd == NULL || sd == NULL) goto error; - if (g_isi_client_send(sd->client, msg, sizeof(msg), SS_TIMEOUT, - query_resp_cb, cbd, g_free) != NULL) + if (g_isi_client_send(sd->client, msg, sizeof(msg), + query_resp_cb, cbd, g_free)) return; error: @@ -241,8 +241,8 @@ static void isi_cw_set(struct ofono_call_settings *cs, int mode, int cls, if (cbd == NULL || sd == NULL) goto error; - if (g_isi_client_send(sd->client, msg, sizeof(msg), SS_TIMEOUT, - set_resp_cb, cbd, g_free) != NULL) + if (g_isi_client_send(sd->client, msg, sizeof(msg), + set_resp_cb, cbd, g_free)) return; error: diff --git a/drivers/isimodem/cbs.c b/drivers/isimodem/cbs.c index 0270f973..871e0eaf 100644 --- a/drivers/isimodem/cbs.c +++ b/drivers/isimodem/cbs.c @@ -173,11 +173,11 @@ static int isi_cbs_probe(struct ofono_cbs *cbs, unsigned int vendor, ofono_cbs_set_data(cbs, cd); - if (g_isi_client_send(cd->client, msg, sizeof(msg), CBS_TIMEOUT, - routing_resp_cb, cbs, NULL) == NULL) - return -errno; + if (g_isi_client_send(cd->client, msg, sizeof(msg), + routing_resp_cb, cbs, NULL)) + return 0; - return 0; + return -errno; } static void isi_cbs_remove(struct ofono_cbs *cbs) @@ -205,8 +205,7 @@ static void isi_cbs_remove(struct ofono_cbs *cbs) * Send a promiscuous routing release, so as not to hog * resources unnecessarily after being removed. */ - g_isi_client_send(cd->client, msg, sizeof(msg), CBS_TIMEOUT, NULL, - NULL, NULL); + g_isi_client_send(cd->client, msg, sizeof(msg), NULL, NULL, NULL); g_isi_client_destroy(cd->client); g_free(cd); diff --git a/drivers/isimodem/devinfo.c b/drivers/isimodem/devinfo.c index 3758bcff..bb307304 100644 --- a/drivers/isimodem/devinfo.c +++ b/drivers/isimodem/devinfo.c @@ -115,12 +115,12 @@ static void isi_query_manufacturer(struct ofono_devinfo *info, INFO_PRODUCT_INFO_READ_REQ, INFO_PRODUCT_MANUFACTURER }; + size_t len = sizeof(msg); if (cbd == NULL || dev == NULL) goto error; - if (g_isi_client_send(dev->client, msg, sizeof(msg), INFO_TIMEOUT, - info_resp_cb, cbd, g_free) != NULL) + if (g_isi_client_send(dev->client, msg, len, info_resp_cb, cbd, g_free)) return; error: @@ -139,12 +139,12 @@ static void isi_query_model(struct ofono_devinfo *info, INFO_PRODUCT_INFO_READ_REQ, INFO_PRODUCT_NAME }; + size_t len = sizeof(msg); if (cbd == NULL || dev == NULL) goto error; - if (g_isi_client_send(dev->client, msg, sizeof(msg), INFO_TIMEOUT, - info_resp_cb, cbd, g_free) != NULL) + if (g_isi_client_send(dev->client, msg, len, info_resp_cb, cbd, g_free)) return; error: @@ -164,12 +164,12 @@ static void isi_query_revision(struct ofono_devinfo *info, 0x00, INFO_MCUSW, 0x00, 0x00, 0x00, 0x00 }; + size_t len = sizeof(msg); if (cbd == NULL || dev == NULL) goto error; - if (g_isi_client_send(dev->client, msg, sizeof(msg), INFO_TIMEOUT, - info_resp_cb, cbd, g_free) != NULL) + if (g_isi_client_send(dev->client, msg, len, info_resp_cb, cbd, g_free)) return; error: @@ -188,12 +188,12 @@ static void isi_query_serial(struct ofono_devinfo *info, INFO_SERIAL_NUMBER_READ_REQ, INFO_SN_IMEI_PLAIN }; + size_t len = sizeof(msg); if (cbd == NULL || dev == NULL) goto error; - if (g_isi_client_send(dev->client, msg, sizeof(msg), INFO_TIMEOUT, - info_resp_cb, cbd, g_free) != NULL) + if (g_isi_client_send(dev->client, msg, len, info_resp_cb, cbd, g_free)) return; error: @@ -228,8 +228,10 @@ static int isi_devinfo_probe(struct ofono_devinfo *info, unsigned int vendor, return -ENOMEM; } + ofono_devinfo_set_data(info, data); + g_isi_client_set_timeout(data->client, INFO_TIMEOUT); g_isi_client_verify(data->client, reachable_cb, info, NULL); return 0; diff --git a/drivers/isimodem/gprs-context.c b/drivers/isimodem/gprs-context.c index efb64ad5..bfb496c2 100644 --- a/drivers/isimodem/gprs-context.c +++ b/drivers/isimodem/gprs-context.c @@ -324,9 +324,9 @@ static void send_context_activate(GIsiClient *client, void *opaque) g_isi_client_ind_subscribe(client, GPDS_CONTEXT_DEACTIVATE_IND, deactivate_ind_cb, cd); - if (g_isi_client_send(client, msg, sizeof(msg), + if (g_isi_client_send_with_timeout(client, msg, sizeof(msg), GPDS_CTX_ACTIVATE_TIMEOUT, - context_activate_cb, cd, NULL) != NULL) + context_activate_cb, cd, NULL)) g_isi_pipe_start(cd->pipe); else gprs_up_fail(cd); @@ -372,8 +372,7 @@ static void send_context_authenticate(GIsiClient *client, void *opaque) { cd->password, password_len }, }; - if (g_isi_client_vsend(client, iov, 4, GPDS_TIMEOUT, - context_auth_cb, cd, NULL) == NULL) + if (!g_isi_client_vsend(client, iov, 4, context_auth_cb, cd, NULL)) gprs_up_fail(cd); } @@ -419,8 +418,8 @@ static void link_conf_cb(const GIsiMessage *msg, void *opaque) if (!check_resp(msg, GPDS_LL_CONFIGURE_RESP, 2, cd, gprs_up_fail)) return; - if (g_isi_client_vsend(cd->client, iov, 2, GPDS_TIMEOUT, - context_conf_cb, cd, NULL) == NULL) + if (!g_isi_client_vsend(cd->client, iov, 2, + context_conf_cb, cd, NULL)) gprs_up_fail(cd); } @@ -441,8 +440,8 @@ static void create_context_cb(const GIsiMessage *msg, void *opaque) cd->handle = req[1] = data[0]; - if (g_isi_client_send(cd->client, req, sizeof(req), GPDS_TIMEOUT, - link_conf_cb, cd, NULL) == NULL) + if (!g_isi_client_send(cd->client, req, sizeof(req), + link_conf_cb, cd, NULL)) gprs_up_fail(cd); } @@ -454,8 +453,8 @@ static void create_pipe_cb(GIsiPipe *pipe) GPDS_CONTEXT_ID_CREATE_REQ, }; - if (g_isi_client_send(cd->client, msg, sizeof(msg), GPDS_TIMEOUT, - create_context_cb, cd, NULL) == NULL) + if (!g_isi_client_send(cd->client, msg, sizeof(msg), + create_context_cb, cd, NULL)) gprs_up_fail(cd); } @@ -551,12 +550,10 @@ static void isi_gprs_deactivate_primary(struct ofono_gprs_context *gc, msg[1] = cd->handle; - if (g_isi_client_send(cd->client, msg, sizeof(msg), + if (!g_isi_client_send_with_timeout(cd->client, msg, sizeof(msg), GPDS_CTX_DEACTIVATE_TIMEOUT, - context_deactivate_cb, cd, NULL) == NULL) { + context_deactivate_cb, cd, NULL)) gprs_down_fail(cd); - return; - } } static void gpds_ctx_reachable_cb(const GIsiMessage *msg, void *opaque) diff --git a/drivers/isimodem/gprs.c b/drivers/isimodem/gprs.c index 791ea563..e614ac90 100644 --- a/drivers/isimodem/gprs.c +++ b/drivers/isimodem/gprs.c @@ -93,7 +93,7 @@ static void set_attach_mode(struct ofono_gprs *gprs, int attached) 0x00 }; - g_isi_client_send(gd->client, msg, sizeof(msg), GPDS_TIMEOUT, + g_isi_client_send(gd->client, msg, sizeof(msg), configure_resp_cb, gprs, NULL); } @@ -280,7 +280,7 @@ static void gpds_reachable_cb(const GIsiMessage *msg, void *opaque) return; } - g_isi_client_send(gd->info_client, req, sizeof(req), GPDS_TIMEOUT, + g_isi_client_send(gd->info_client, req, sizeof(req), info_pp_read_resp_cb, gprs, NULL); } @@ -301,6 +301,7 @@ static int isi_gprs_probe(struct ofono_gprs *gprs, ofono_gprs_set_data(gprs, gd); + g_isi_client_set_timeout(gd->client, GPDS_TIMEOUT); g_isi_client_verify(gd->client, gpds_reachable_cb, gprs, NULL); return 0; @@ -397,9 +398,10 @@ static void isi_gprs_set_attached(struct ofono_gprs *gprs, int attached, GPDS_FOLLOW_OFF }; - if (g_isi_client_send(gd->client, msg, sizeof(msg), - GPDS_ATTACH_TIMEOUT, attach_resp_cb, - cbd, g_free) != NULL) + if (g_isi_client_send_with_timeout(gd->client, + msg, sizeof(msg), + GPDS_ATTACH_TIMEOUT, attach_resp_cb, + cbd, g_free)) return; } else { const unsigned char msg[] = { @@ -408,9 +410,10 @@ static void isi_gprs_set_attached(struct ofono_gprs *gprs, int attached, 0x00 /* sub-blocks */ }; - if (g_isi_client_send(gd->client, msg, sizeof(msg), - GPDS_DETACH_TIMEOUT, detach_resp_cb, - cbd, g_free) != NULL) + if (g_isi_client_send_with_timeout(gd->client, + msg, sizeof(msg), + GPDS_DETACH_TIMEOUT, detach_resp_cb, + cbd, g_free)) return; } @@ -474,8 +477,8 @@ static void isi_gprs_attached_status(struct ofono_gprs *gprs, if (cbd == NULL || gd == NULL) goto error; - if (g_isi_client_send(gd->client, msg, sizeof(msg), GPDS_TIMEOUT, - status_resp_cb, cbd, g_free) != NULL) + if (g_isi_client_send(gd->client, msg, sizeof(msg), + status_resp_cb, cbd, g_free)) return; error: diff --git a/drivers/isimodem/network-registration.c b/drivers/isimodem/network-registration.c index 0946ad63..3799b7f4 100644 --- a/drivers/isimodem/network-registration.c +++ b/drivers/isimodem/network-registration.c @@ -338,8 +338,8 @@ static void rat_resp_cb(const GIsiMessage *msg, void *data) goto error; } - if (g_isi_client_send(nd->client, req, sizeof(req), NETWORK_TIMEOUT, - reg_status_resp_cb, cbd, NULL) != NULL) + if (g_isi_client_send(nd->client, req, sizeof(req), + reg_status_resp_cb, cbd, NULL)) return; error: @@ -368,8 +368,8 @@ static void isi_registration_status(struct ofono_netreg *netreg, if (nd == NULL || cbd == NULL) goto error; - if (g_isi_client_send(nd->client, rat, sizeof(rat), NETWORK_TIMEOUT, - rat_resp_cb, cbd, NULL) != NULL) + if (g_isi_client_send(nd->client, rat, sizeof(rat), + rat_resp_cb, cbd, NULL)) return; error: @@ -449,8 +449,8 @@ static void isi_current_operator(struct ofono_netreg *netreg, if (cbd == NULL || nd == NULL) goto error; - if (g_isi_client_send(nd->client, msg, sizeof(msg), NETWORK_TIMEOUT, - name_get_resp_cb, cbd, g_free) != NULL) + if (g_isi_client_send(nd->client, msg, sizeof(msg), + name_get_resp_cb, cbd, g_free)) return; error: @@ -552,9 +552,9 @@ static void isi_list_operators(struct ofono_netreg *netreg, if (cbd == NULL || nd == NULL) goto error; - if (g_isi_client_send(nd->client, msg, sizeof(msg), + if (g_isi_client_send_with_timeout(nd->client, msg, sizeof(msg), NETWORK_SCAN_TIMEOUT, available_resp_cb, cbd, - g_free) != NULL) + g_free)) return; error: @@ -599,9 +599,9 @@ static void isi_register_auto(struct ofono_netreg *netreg, if (nd == NULL || cbd == NULL) goto error; - if (g_isi_client_send(nd->client, msg, sizeof(msg), - NETWORK_SET_TIMEOUT, set_auto_resp_cb, cbd, - g_free) != NULL) + if (g_isi_client_send_with_timeout(nd->client, msg, sizeof(msg), + NETWORK_SET_TIMEOUT, + set_auto_resp_cb, cbd, g_free)) return; error: @@ -653,8 +653,9 @@ static void isi_register_manual(struct ofono_netreg *netreg, if (cbd == NULL || nd == NULL) goto error; - if (g_isi_client_send(nd->client, msg, sizeof(msg), NETWORK_SET_TIMEOUT, - set_manual_resp_cb, cbd, g_free) != NULL) + if (g_isi_client_send_with_timeout(nd->client, msg, sizeof(msg), + NETWORK_SET_TIMEOUT, + set_manual_resp_cb, cbd, g_free)) return; error: @@ -783,8 +784,8 @@ static void isi_strength(struct ofono_netreg *netreg, if (nd == NULL || cbd == NULL) goto error; - if (g_isi_client_send(nd->client, msg, sizeof(msg), NETWORK_TIMEOUT, - rssi_resp_cb, cbd, g_free) != NULL) + if (g_isi_client_send(nd->client, msg, sizeof(msg), + rssi_resp_cb, cbd, g_free)) return; error: diff --git a/drivers/isimodem/phonebook.c b/drivers/isimodem/phonebook.c index 46f4389d..234b708d 100644 --- a/drivers/isimodem/phonebook.c +++ b/drivers/isimodem/phonebook.c @@ -222,8 +222,7 @@ static void read_next_entry(GIsiClient *client, uint16_t location, if (cbd == NULL) goto error; - if (g_isi_client_send(client, msg, sizeof(msg), SIM_TIMEOUT, - notify, cbd, NULL) != NULL) + if (g_isi_client_send(client, msg, sizeof(msg), notify, cbd, NULL)) return; error: @@ -278,12 +277,12 @@ static void isi_export_entries(struct ofono_phonebook *pb, const char *storage, 0, SIM_PB_EMAIL, 0, 0 /* filler */ }; + size_t len = sizeof(msg); if (cbd == NULL || pbd == NULL || strcmp(storage, "SM") != 0) goto error; - if (g_isi_client_send(pbd->client, msg, sizeof(msg), SIM_TIMEOUT, - read_resp_cb, cbd, NULL) != NULL) + if (g_isi_client_send(pbd->client, msg, len, read_resp_cb, cbd, NULL)) return; error: diff --git a/drivers/isimodem/radio-settings.c b/drivers/isimodem/radio-settings.c index dd009f69..21e3da51 100644 --- a/drivers/isimodem/radio-settings.c +++ b/drivers/isimodem/radio-settings.c @@ -150,7 +150,7 @@ static void isi_query_rat_mode(struct ofono_radio_settings *rs, if (cbd == NULL || rd == NULL) goto error; - if (g_isi_client_send(rd->gss_client, msg, sizeof(msg), GSS_TIMEOUT, + if (g_isi_client_send(rd->gss_client, msg, sizeof(msg), rat_mode_read_resp_cb, cbd, NULL)) return; @@ -210,7 +210,7 @@ static void isi_set_rat_mode(struct ofono_radio_settings *rs, if (isi_mode == -1) goto error; - if (g_isi_client_send(rd->gss_client, msg, sizeof(msg), GSS_TIMEOUT, + if (g_isi_client_send(rd->gss_client, msg, sizeof(msg), mode_write_resp_cb, cbd, NULL)) return; diff --git a/drivers/isimodem/sim.c b/drivers/isimodem/sim.c index f19ba21e..b45e1669 100644 --- a/drivers/isimodem/sim.c +++ b/drivers/isimodem/sim.c @@ -194,11 +194,8 @@ static gboolean isi_read_spn(struct ofono_sim *sim, struct isi_cb_data *cbd) if (sd == NULL) return FALSE; - if (g_isi_client_send(sd->client, msg, sizeof(msg), SIM_TIMEOUT, - spn_resp_cb, cbd, g_free) == NULL) - return FALSE; - - return TRUE; + return g_isi_client_send(sd->client, msg, sizeof(msg), + spn_resp_cb, cbd, g_free); } static void read_iccid_resp_cb(const GIsiMessage *msg, void *data) @@ -233,11 +230,8 @@ static gboolean isi_read_iccid(struct ofono_sim *sim, struct isi_cb_data *cbd) if (sd == NULL) return FALSE; - if (g_isi_client_send(sd->client, req, sizeof(req), SIM_TIMEOUT, - read_iccid_resp_cb, cbd, g_free) == NULL) - return FALSE; - - return TRUE; + return g_isi_client_send(sd->client, req, sizeof(req), + read_iccid_resp_cb, cbd, g_free); } static void isi_read_file_transparent(struct ofono_sim *sim, int fileid, @@ -245,6 +239,7 @@ static void isi_read_file_transparent(struct ofono_sim *sim, int fileid, ofono_sim_read_cb_t cb, void *data) { struct isi_cb_data *cbd; + gboolean done; cbd = isi_cb_data_new(sim, cb, data); if (cbd == NULL) @@ -252,16 +247,20 @@ static void isi_read_file_transparent(struct ofono_sim *sim, int fileid, switch (fileid) { case SIM_EFSPN_FILEID: - - if (isi_read_spn(sim, cbd)) - return; + done = isi_read_spn(sim, cbd); + break; case SIM_EF_ICCID_FILEID: + done = isi_read_iccid(sim, cbd); + break; - if (isi_read_iccid(sim, cbd)) - return; + default: + done = FALSE; } + if (done) + return; + DBG("Fileid %04X not implemented", fileid); error: @@ -358,12 +357,12 @@ static void isi_read_imsi(struct ofono_sim *sim, SIM_IMSI_REQ_READ_IMSI, READ_IMSI }; + size_t len = sizeof(msg); if (cbd == NULL || sd == NULL) goto error; - if (g_isi_client_send(sd->client, msg, sizeof(msg), SIM_TIMEOUT, - imsi_resp_cb, cbd, g_free) != NULL) + if (g_isi_client_send(sd->client, msg, len, imsi_resp_cb, cbd, g_free)) return; error: @@ -401,12 +400,12 @@ static void isi_read_hplmn(struct ofono_sim *sim) SIM_NETWORK_INFO_REQ, READ_HPLMN, 0 }; + size_t len = sizeof(req); if (sd == NULL) return; - g_isi_client_send(sd->client, req, sizeof(req), SIM_TIMEOUT, - read_hplmn_resp_cb, sim, NULL); + g_isi_client_send(sd->client, req, len, read_hplmn_resp_cb, sim, NULL); } static void sim_ind_cb(const GIsiMessage *msg, void *data) diff --git a/drivers/isimodem/sms.c b/drivers/isimodem/sms.c index 5abb794f..15e37a3b 100644 --- a/drivers/isimodem/sms.c +++ b/drivers/isimodem/sms.c @@ -251,8 +251,8 @@ static void isi_sca_query(struct ofono_sms *sms, if (cbd == NULL || sd == NULL) goto error; - if (g_isi_client_send(sd->sim, msg, sizeof(msg), SIM_TIMEOUT, - sca_query_resp_cb, cbd, g_free) != NULL) + if (g_isi_client_send(sd->sim, msg, sizeof(msg), + sca_query_resp_cb, cbd, g_free)) return; error: @@ -302,8 +302,7 @@ static void isi_sca_set(struct ofono_sms *sms, bcd[0] = 1 + (strlen(sca->number) + 1) / 2; bcd[1] = sca->type & 0xFF; - if (g_isi_client_vsend(sd->sim, iov, 2, SIM_TIMEOUT, sca_set_resp_cb, - cbd, g_free) != NULL) + if (g_isi_client_vsend(sd->sim, iov, 2, sca_set_resp_cb, cbd, g_free)) return; error: @@ -405,8 +404,9 @@ static void isi_submit(struct ofono_sms *sms, unsigned char *pdu, * Modem seems to time out SMS_MESSAGE_SEND_REQ in 5 seconds. * Wait normal timeout plus the modem timeout. */ - if (g_isi_client_vsend(sd->client, iov, 4, SMS_TIMEOUT + 5, - submit_resp_cb, cbd, g_free) != NULL) + if (g_isi_client_vsend_with_timeout(sd->client, iov, 4, + SMS_TIMEOUT + 5, + submit_resp_cb, cbd, g_free)) return; error: @@ -483,9 +483,9 @@ static gboolean send_deliver_report(GIsiClient *client, gboolean success) 0, 0, 0, /* Filler */ 0, /* Sub blocks */ }; + size_t len = sizeof(msg); - return g_isi_client_send(client, msg, sizeof(msg), SMS_TIMEOUT, - report_resp_cb, NULL, NULL) != NULL; + return g_isi_client_send(client, msg, len, report_resp_cb, NULL, NULL); } static gboolean parse_sms_address(GIsiSubBlockIter *iter, struct sms_addr *add) @@ -627,6 +627,7 @@ static void sim_reachable_cb(const GIsiMessage *msg, void *data) 0x00, 0x00, 0x00, /* Filler */ 0x00 /* Sub-sub-block count */ }; + size_t len = sizeof(req); if (g_isi_msg_error(msg) < 0) { DBG("unable to find SIM resource"); @@ -636,8 +637,7 @@ static void sim_reachable_cb(const GIsiMessage *msg, void *data) g_isi_client_ind_subscribe(sd->client, SMS_MESSAGE_SEND_STATUS_IND, send_status_ind_cb, sms); - g_isi_client_send(sd->client, msg, sizeof(msg), SMS_TIMEOUT, - routing_resp_cb, sms, NULL); + g_isi_client_send(sd->client, req, len, routing_resp_cb, sms, NULL); } static void sms_reachable_cb(const GIsiMessage *msg, void *data) @@ -675,6 +675,9 @@ static int isi_sms_probe(struct ofono_sms *sms, unsigned int vendor, if (sd->sim == NULL) goto nomem; + g_isi_client_set_timeout(sd->client, SMS_TIMEOUT); + g_isi_client_set_timeout(sd->sim, SIM_TIMEOUT); + ofono_sms_set_data(sms, sd); g_isi_client_verify(sd->client, sms_reachable_cb, sms, NULL); @@ -712,8 +715,7 @@ static void isi_sms_remove(struct ofono_sms *sms) * Send a promiscuous routing release, so as not to * hog resources unnecessarily after being removed */ - g_isi_client_send(sd->client, msg, sizeof(msg), SMS_TIMEOUT, - NULL, NULL, NULL); + g_isi_client_send(sd->client, msg, sizeof(msg), NULL, NULL, NULL); g_isi_client_destroy(sd->client); g_isi_client_destroy(sd->sim); g_free(sd); diff --git a/drivers/isimodem/ussd.c b/drivers/isimodem/ussd.c index a1cdc663..355b6db0 100644 --- a/drivers/isimodem/ussd.c +++ b/drivers/isimodem/ussd.c @@ -81,8 +81,7 @@ static void ussd_notify_ack(struct ussd_data *ud) 0, /* subblock count */ }; - g_isi_client_send(ud->client, msg, sizeof(msg), SS_TIMEOUT, NULL, NULL, - NULL); + g_isi_client_send(ud->client, msg, sizeof(msg), NULL, NULL, NULL); } static void ussd_ind_cb(const GIsiMessage *msg, void *data) @@ -187,8 +186,8 @@ static void isi_request(struct ofono_ussd *ussd, int dcs, if (cbd == NULL || ud == NULL) goto error; - if (g_isi_client_vsend(ud->client, iov, 2, SS_TIMEOUT, - ussd_send_resp_cb, cbd, g_free) != NULL) + if (g_isi_client_vsend(ud->client, iov, 2, + ussd_send_resp_cb, cbd, g_free)) return; error: @@ -210,8 +209,8 @@ static void isi_cancel(struct ofono_ussd *ussd, if (cbd == NULL || ud == NULL) goto error; - if (g_isi_client_send(ud->client, msg, sizeof(msg), SS_TIMEOUT, - ussd_send_resp_cb, cbd, g_free) != NULL) + if (g_isi_client_send(ud->client, msg, sizeof(msg), + ussd_send_resp_cb, cbd, g_free)) return; error: diff --git a/drivers/isimodem/voicecall.c b/drivers/isimodem/voicecall.c index 79317616..c19e64df 100644 --- a/drivers/isimodem/voicecall.c +++ b/drivers/isimodem/voicecall.c @@ -119,13 +119,11 @@ static struct isi_call_req_ctx *isi_call_req(struct ofono_voicecall *ovc, irc->cb = cb; irc->data = data; - if (g_isi_client_send(ivc->client, req, len, ISI_CALL_TIMEOUT, - handler, irc, NULL) == NULL) { - g_free(irc); - return NULL; - } + if (g_isi_client_send(ivc->client, req, len, handler, irc, NULL)) + return irc; - return irc; + g_free(irc); + return NULL; } static void isi_ctx_queue(struct isi_call_req_ctx *irc, isi_call_req_step *next)