summaryrefslogtreecommitdiffstats
path: root/drivers/isimodem
diff options
context:
space:
mode:
authorMika Liljeberg <mika.liljeberg@nokia.com>2011-03-31 11:28:53 +0300
committerDenis Kenzior <denkenz@gmail.com>2011-03-31 10:22:22 -0500
commitc9a5b5143cb93528e69bdff606e67c0153991d21 (patch)
tree2403af5d5e7e640f5f81162dfd16a4d5d6ea36e9 /drivers/isimodem
parent76d221ecaf6aa9cf5790c21557c98694f6e5e5c2 (diff)
downloadofono-c9a5b5143cb93528e69bdff606e67c0153991d21.tar.bz2
isimodem: remove atoms that fail to probe
Diffstat (limited to 'drivers/isimodem')
-rw-r--r--drivers/isimodem/audio-settings.c4
-rw-r--r--drivers/isimodem/call-barring.c4
-rw-r--r--drivers/isimodem/call-forwarding.c4
-rw-r--r--drivers/isimodem/call-settings.c4
-rw-r--r--drivers/isimodem/cbs.c5
-rw-r--r--drivers/isimodem/devinfo.c4
-rw-r--r--drivers/isimodem/gprs-context.c6
-rw-r--r--drivers/isimodem/gprs.c1
-rw-r--r--drivers/isimodem/network-registration.c7
-rw-r--r--drivers/isimodem/phonebook.c4
-rw-r--r--drivers/isimodem/radio-settings.c4
-rw-r--r--drivers/isimodem/sim.c1
-rw-r--r--drivers/isimodem/sms.c5
-rw-r--r--drivers/isimodem/ussd.c4
-rw-r--r--drivers/isimodem/voicecall.c4
15 files changed, 44 insertions, 17 deletions
diff --git a/drivers/isimodem/audio-settings.c b/drivers/isimodem/audio-settings.c
index 65c596b8..fd21dec1 100644
--- a/drivers/isimodem/audio-settings.c
+++ b/drivers/isimodem/audio-settings.c
@@ -67,8 +67,10 @@ static void isi_call_verify_cb(const GIsiMessage *msg, void *data)
struct ofono_audio_settings *as = data;
struct audio_settings_data *asd = ofono_audio_settings_get_data(as);
- if (g_isi_msg_error(msg) < 0)
+ if (g_isi_msg_error(msg) < 0) {
+ ofono_audio_settings_remove(as);
return;
+ }
ISI_VERSION_DBG(msg);
diff --git a/drivers/isimodem/call-barring.c b/drivers/isimodem/call-barring.c
index 5eb06cad..ea425e29 100644
--- a/drivers/isimodem/call-barring.c
+++ b/drivers/isimodem/call-barring.c
@@ -383,8 +383,10 @@ static void reachable_cb(const GIsiMessage *msg, void *data)
{
struct ofono_call_barring *barr = data;
- if (g_isi_msg_error(msg) < 0)
+ if (g_isi_msg_error(msg) < 0) {
+ ofono_call_barring_remove(barr);
return;
+ }
ISI_VERSION_DBG(msg);
diff --git a/drivers/isimodem/call-forwarding.c b/drivers/isimodem/call-forwarding.c
index 52c28fec..888314de 100644
--- a/drivers/isimodem/call-forwarding.c
+++ b/drivers/isimodem/call-forwarding.c
@@ -410,8 +410,10 @@ static void reachable_cb(const GIsiMessage *msg, void *data)
{
struct ofono_call_forwarding *cf = data;
- if (g_isi_msg_error(msg) < 0)
+ if (g_isi_msg_error(msg) < 0) {
+ ofono_call_forwarding_remove(cf);
return;
+ }
ISI_VERSION_DBG(msg);
diff --git a/drivers/isimodem/call-settings.c b/drivers/isimodem/call-settings.c
index 9fb17dff..9270f5fa 100644
--- a/drivers/isimodem/call-settings.c
+++ b/drivers/isimodem/call-settings.c
@@ -358,8 +358,10 @@ static void reachable_cb(const GIsiMessage *msg, void *data)
{
struct ofono_call_settings *cs = data;
- if (g_isi_msg_error(msg) < 0)
+ if (g_isi_msg_error(msg) < 0) {
+ ofono_call_settings_remove(cs);
return;
+ }
ISI_VERSION_DBG(msg);
diff --git a/drivers/isimodem/cbs.c b/drivers/isimodem/cbs.c
index b969c1f0..11b7afff 100644
--- a/drivers/isimodem/cbs.c
+++ b/drivers/isimodem/cbs.c
@@ -133,8 +133,11 @@ static void routing_resp_cb(const GIsiMessage *msg, void *data)
struct ofono_cbs *cbs = data;
struct cbs_data *cd = ofono_cbs_get_data(cbs);
- if (cd == NULL || !check_response_status(msg, SMS_GSM_CB_ROUTING_RESP))
+ if (cd == NULL ||
+ !check_response_status(msg, SMS_GSM_CB_ROUTING_RESP)) {
+ ofono_cbs_remove(cbs);
return;
+ }
g_isi_client_ntf_subscribe(cd->client, SMS_GSM_CB_ROUTING_NTF,
routing_ntf_cb, cbs);
diff --git a/drivers/isimodem/devinfo.c b/drivers/isimodem/devinfo.c
index 3bf05f47..62dd2d1e 100644
--- a/drivers/isimodem/devinfo.c
+++ b/drivers/isimodem/devinfo.c
@@ -205,8 +205,10 @@ static void reachable_cb(const GIsiMessage *msg, void *data)
{
struct ofono_devinfo *info = data;
- if (g_isi_msg_error(msg) < 0)
+ if (g_isi_msg_error(msg) < 0) {
+ ofono_devinfo_remove(info);
return;
+ }
ISI_VERSION_DBG(msg);
diff --git a/drivers/isimodem/gprs-context.c b/drivers/isimodem/gprs-context.c
index 329ef218..8d68213a 100644
--- a/drivers/isimodem/gprs-context.c
+++ b/drivers/isimodem/gprs-context.c
@@ -601,10 +601,12 @@ static void isi_gprs_deactivate_primary(struct ofono_gprs_context *gc,
static void gpds_ctx_reachable_cb(const GIsiMessage *msg, void *opaque)
{
- struct context_data *cd = opaque;
+ struct ofono_gprs_context *gc = opaque;
+ struct context_data *cd = ofono_gprs_context_get_data(gc);
if (g_isi_msg_error(msg) < 0) {
DBG("unable to bootstrap gprs context driver");
+ ofono_gprs_context_remove(gc);
return;
}
@@ -630,7 +632,7 @@ static int isi_gprs_context_probe(struct ofono_gprs_context *gc,
cd->context = gc;
ofono_gprs_context_set_data(gc, cd);
- g_isi_client_verify(cd->client, gpds_ctx_reachable_cb, cd, NULL);
+ g_isi_client_verify(cd->client, gpds_ctx_reachable_cb, gc, NULL);
return 0;
}
diff --git a/drivers/isimodem/gprs.c b/drivers/isimodem/gprs.c
index ea907040..d4d7ebf7 100644
--- a/drivers/isimodem/gprs.c
+++ b/drivers/isimodem/gprs.c
@@ -265,6 +265,7 @@ static void gpds_reachable_cb(const GIsiMessage *msg, void *opaque)
if (g_isi_msg_error(msg) < 0) {
DBG("unable to bootstrap gprs driver");
+ ofono_gprs_remove(gprs);
return;
}
diff --git a/drivers/isimodem/network-registration.c b/drivers/isimodem/network-registration.c
index 8bf2423c..56c3bb8f 100644
--- a/drivers/isimodem/network-registration.c
+++ b/drivers/isimodem/network-registration.c
@@ -933,14 +933,13 @@ static void reachable_cb(const GIsiMessage *msg, void *data)
struct ofono_netreg *netreg = data;
struct netreg_data *nd = ofono_netreg_get_data(netreg);
- if (g_isi_msg_error(msg) < 0)
+ if (g_isi_msg_error(msg) < 0) {
+ ofono_netreg_remove(netreg);
return;
+ }
ISI_VERSION_DBG(msg);
- if (nd == NULL)
- return;
-
nd->version.major = g_isi_msg_version_major(msg);
nd->version.minor = g_isi_msg_version_minor(msg);
diff --git a/drivers/isimodem/phonebook.c b/drivers/isimodem/phonebook.c
index 1f92d371..4c68e31a 100644
--- a/drivers/isimodem/phonebook.c
+++ b/drivers/isimodem/phonebook.c
@@ -294,8 +294,10 @@ static void reachable_cb(const GIsiMessage *msg, void *data)
{
struct ofono_phonebook *pb = data;
- if (g_isi_msg_error(msg) < 0)
+ if (g_isi_msg_error(msg) < 0) {
+ ofono_phonebook_remove(pb);
return;
+ }
ISI_VERSION_DBG(msg);
diff --git a/drivers/isimodem/radio-settings.c b/drivers/isimodem/radio-settings.c
index 5d992130..a2a521bb 100644
--- a/drivers/isimodem/radio-settings.c
+++ b/drivers/isimodem/radio-settings.c
@@ -304,8 +304,10 @@ static void gss_reachable_cb(const GIsiMessage *msg, void *opaque)
{
struct ofono_radio_settings *rs = opaque;
- if (g_isi_msg_error(msg) < 0)
+ if (g_isi_msg_error(msg) < 0) {
+ ofono_radio_settings_remove(rs);
return;
+ }
ISI_VERSION_DBG(msg);
diff --git a/drivers/isimodem/sim.c b/drivers/isimodem/sim.c
index a602e395..f5fa75d0 100644
--- a/drivers/isimodem/sim.c
+++ b/drivers/isimodem/sim.c
@@ -872,6 +872,7 @@ static void sim_reachable_cb(const GIsiMessage *msg, void *data)
if (g_isi_msg_error(msg) < 0) {
DBG("PN_SIM: %s", strerror(-g_isi_msg_error(msg)));
+ ofono_sim_remove(sim);
return;
}
diff --git a/drivers/isimodem/sms.c b/drivers/isimodem/sms.c
index c90c06dd..6f6b2477 100644
--- a/drivers/isimodem/sms.c
+++ b/drivers/isimodem/sms.c
@@ -602,8 +602,10 @@ static void routing_resp_cb(const GIsiMessage *msg, void *data)
struct ofono_sms *sms = data;
struct sms_data *sd = ofono_sms_get_data(sms);
- if (!check_sms_status(msg, SMS_PP_ROUTING_RESP))
+ if (!check_sms_status(msg, SMS_PP_ROUTING_RESP)) {
+ ofono_sms_remove(sms);
return;
+ }
g_isi_client_ntf_subscribe(sd->client, SMS_PP_ROUTING_NTF,
routing_ntf_cb, sms);
@@ -647,6 +649,7 @@ static void sms_reachable_cb(const GIsiMessage *msg, void *data)
if (g_isi_msg_error(msg) < 0) {
DBG("unable to find SMS resource");
+ ofono_sms_remove(sms);
return;
}
diff --git a/drivers/isimodem/ussd.c b/drivers/isimodem/ussd.c
index f0b7392c..ee5c0958 100644
--- a/drivers/isimodem/ussd.c
+++ b/drivers/isimodem/ussd.c
@@ -226,8 +226,10 @@ static void ussd_reachable_cb(const GIsiMessage *msg, void *data)
struct ofono_ussd *ussd = data;
struct ussd_data *ud = ofono_ussd_get_data(ussd);
- if (g_isi_msg_error(msg) < 0)
+ if (g_isi_msg_error(msg) < 0) {
+ ofono_ussd_remove(ussd);
return;
+ }
ISI_VERSION_DBG(msg);
diff --git a/drivers/isimodem/voicecall.c b/drivers/isimodem/voicecall.c
index 92d98ab8..5cbba1fe 100644
--- a/drivers/isimodem/voicecall.c
+++ b/drivers/isimodem/voicecall.c
@@ -1764,8 +1764,10 @@ static void call_verify_cb(const GIsiMessage *msg, void *data)
struct ofono_voicecall *ovc = data;
struct isi_voicecall *ivc = ofono_voicecall_get_data(ovc);
- if (g_isi_msg_error(msg) < 0)
+ if (g_isi_msg_error(msg) < 0) {
+ ofono_voicecall_remove(ovc);
return;
+ }
ISI_VERSION_DBG(msg);