summaryrefslogtreecommitdiffstats
path: root/src/sim.c
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2011-07-19 14:02:40 -0500
committerDenis Kenzior <denkenz@gmail.com>2011-07-19 14:10:17 -0500
commit4adc4a728dd5e98643876502c672223baa4cd848 (patch)
tree988db8a85b5937d6de20e3945033ba583ff072ff /src/sim.c
parent9751914274460ee968dc7f2427b07e3777eb4ff9 (diff)
downloadofono-4adc4a728dd5e98643876502c672223baa4cd848.tar.bz2
sim: Break out state notification into own method
Diffstat (limited to 'src/sim.c')
-rw-r--r--src/sim.c34
1 files changed, 15 insertions, 19 deletions
diff --git a/src/sim.c b/src/sim.c
index 9e15f644..62139836 100644
--- a/src/sim.c
+++ b/src/sim.c
@@ -309,6 +309,19 @@ static void service_number_free(struct service_number *num)
g_free(num);
}
+static void call_state_watches(struct ofono_sim *sim)
+{
+ GSList *l;
+ ofono_sim_state_event_cb_t notify;
+
+ for (l = sim->state_watches->items; l; l = l->next) {
+ struct ofono_watchlist_item *item = l->data;
+ notify = item->notify;
+
+ notify(sim->state, item->notify_data);
+ }
+}
+
static DBusMessage *sim_get_properties(DBusConnection *conn,
DBusMessage *msg, void *data)
{
@@ -1358,9 +1371,6 @@ static void sim_ready(enum ofono_sim_state new_state, void *user)
static void sim_set_ready(struct ofono_sim *sim)
{
- GSList *l;
- ofono_sim_state_event_cb_t notify;
-
if (sim == NULL)
return;
@@ -1371,12 +1381,7 @@ static void sim_set_ready(struct ofono_sim *sim)
sim_fs_check_version(sim->simfs);
- for (l = sim->state_watches->items; l; l = l->next) {
- struct ofono_watchlist_item *item = l->data;
- notify = item->notify;
-
- notify(sim->state, item->notify_data);
- }
+ call_state_watches(sim);
}
static void sim_imsi_cb(const struct ofono_error *error, const char *imsi,
@@ -2283,9 +2288,6 @@ static void sim_free_state(struct ofono_sim *sim)
void ofono_sim_inserted_notify(struct ofono_sim *sim, ofono_bool_t inserted)
{
- ofono_sim_state_event_cb_t notify;
- GSList *l;
-
if (inserted == TRUE && sim->state == OFONO_SIM_STATE_NOT_PRESENT)
sim->state = OFONO_SIM_STATE_INSERTED;
else if (inserted == FALSE && sim->state != OFONO_SIM_STATE_NOT_PRESENT)
@@ -2297,13 +2299,7 @@ void ofono_sim_inserted_notify(struct ofono_sim *sim, ofono_bool_t inserted)
return;
sim_inserted_update(sim);
-
- for (l = sim->state_watches->items; l; l = l->next) {
- struct ofono_watchlist_item *item = l->data;
- notify = item->notify;
-
- notify(sim->state, item->notify_data);
- }
+ call_state_watches(sim);
if (inserted)
sim_initialize(sim);