sim: Revert adding special callback for EFmsisdn
authorDenis Kenzior <denkenz@gmail.com>
Sat, 16 Jun 2012 13:17:47 +0000 (08:17 -0500)
committerDenis Kenzior <denkenz@gmail.com>
Sat, 16 Jun 2012 14:50:05 +0000 (09:50 -0500)
This reverts commit c3124b66d903a43ce639e3de8e838ef39419fc4f.

include/sim.h
src/sim.c

index 8b5ff65..cd2f1e3 100644 (file)
@@ -94,10 +94,6 @@ typedef void (*ofono_sim_read_cb_t)(const struct ofono_error *error,
 typedef void (*ofono_sim_write_cb_t)(const struct ofono_error *error,
                                        void *data);
 
-typedef void (*ofono_sim_msisdn_cb_t)(const struct ofono_error *error,
-                                       const struct ofono_phone_number *ph,
-                                       void *data);
-
 typedef void (*ofono_sim_iccid_cb_t)(const struct ofono_error *error,
                                        const char *iccid, void *data);
 
@@ -151,8 +147,6 @@ struct ofono_sim_driver {
        void (*write_file_cyclic)(struct ofono_sim *sim, int fileid,
                        int length, const unsigned char *value,
                        ofono_sim_write_cb_t cb, void *data);
-       void (*read_msisdn)(struct ofono_sim *sim,
-                       ofono_sim_msisdn_cb_t cb, void *data);
        void (*read_iccid)(struct ofono_sim *sim,
                        ofono_sim_iccid_cb_t cb, void *data);
        void (*read_imsi)(struct ofono_sim *sim,
index 3d4eece..f02aced 100644 (file)
--- a/src/sim.c
+++ b/src/sim.c
@@ -1126,53 +1126,6 @@ static gboolean numbers_list_equal(GSList *a, GSList *b)
        return TRUE;
 }
 
-static void sim_own_numbers_update_done(struct ofono_sim *sim)
-{
-       /* All records retrieved */
-       if (sim->new_numbers)
-               sim->new_numbers = g_slist_reverse(sim->new_numbers);
-
-       if (!numbers_list_equal(sim->new_numbers, sim->own_numbers)) {
-               const char *path = __ofono_atom_get_path(sim->atom);
-               char **own_numbers;
-               DBusConnection *conn = ofono_dbus_get_connection();
-
-               g_slist_foreach(sim->own_numbers, (GFunc) g_free, NULL);
-               g_slist_free(sim->own_numbers);
-               sim->own_numbers = sim->new_numbers;
-
-               own_numbers = get_own_numbers(sim->own_numbers);
-
-               ofono_dbus_signal_array_property_changed(conn, path,
-                                               OFONO_SIM_MANAGER_INTERFACE,
-                                               "SubscriberNumbers",
-                                               DBUS_TYPE_STRING, &own_numbers);
-
-               g_strfreev(own_numbers);
-       } else {
-               g_slist_foreach(sim->new_numbers, (GFunc) g_free, NULL);
-               g_slist_free(sim->new_numbers);
-       }
-
-       sim->new_numbers = NULL;
-}
-
-static void sim_msisdn_cb(const struct ofono_error *error,
-                       const struct ofono_phone_number *ph, void *userdata)
-{
-       struct ofono_sim *sim = userdata;
-
-       if (error->type == OFONO_ERROR_TYPE_NO_ERROR) {
-               struct ofono_phone_number *own;
-
-               own = g_new(struct ofono_phone_number, 1);
-               memcpy(own, ph, sizeof(struct ofono_phone_number));
-               sim->new_numbers = g_slist_prepend(sim->new_numbers, own);
-       }
-
-       sim_own_numbers_update_done(sim);
-}
-
 static void sim_msisdn_read_cb(int ok, int length, int record,
                                const unsigned char *data,
                                int record_length, void *userdata)
@@ -1181,13 +1134,8 @@ static void sim_msisdn_read_cb(int ok, int length, int record,
        int total;
        struct ofono_phone_number ph;
 
-       if (!ok) {
-               if (sim->driver->read_msisdn)
-                       sim->driver->read_msisdn(sim, sim_msisdn_cb, sim);
-               else
-                       sim_own_numbers_update_done(sim);
-               return;
-       }
+       if (!ok)
+               goto check;
 
        if (record_length < 14 || length < record_length)
                return;
@@ -1208,7 +1156,34 @@ static void sim_msisdn_read_cb(int ok, int length, int record,
        if (record != total)
                return;
 
-       sim_own_numbers_update_done(sim);
+check:
+       /* All records retrieved */
+       if (sim->new_numbers)
+               sim->new_numbers = g_slist_reverse(sim->new_numbers);
+
+       if (!numbers_list_equal(sim->new_numbers, sim->own_numbers)) {
+               const char *path = __ofono_atom_get_path(sim->atom);
+               char **own_numbers;
+               DBusConnection *conn = ofono_dbus_get_connection();
+
+               g_slist_foreach(sim->own_numbers, (GFunc) g_free, NULL);
+               g_slist_free(sim->own_numbers);
+               sim->own_numbers = sim->new_numbers;
+
+               own_numbers = get_own_numbers(sim->own_numbers);
+
+               ofono_dbus_signal_array_property_changed(conn, path,
+                                               OFONO_SIM_MANAGER_INTERFACE,
+                                               "SubscriberNumbers",
+                                               DBUS_TYPE_STRING, &own_numbers);
+
+               g_strfreev(own_numbers);
+       } else {
+               g_slist_foreach(sim->new_numbers, (GFunc) g_free, NULL);
+               g_slist_free(sim->new_numbers);
+       }
+
+       sim->new_numbers = NULL;
 }
 
 static gint service_number_compare(gconstpointer a, gconstpointer b)