---
 drivers/atmodem/atutil.c |    8 +++++++-
 drivers/atmodem/atutil.h |    3 ++-
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/drivers/atmodem/atutil.c b/drivers/atmodem/atutil.c
index 0c6aab4..7c46dc5 100644
--- a/drivers/atmodem/atutil.c
+++ b/drivers/atmodem/atutil.c
@@ -45,6 +45,7 @@ struct at_util_sim_state_query {
        guint num_times;
        at_util_sim_inserted_cb_t cb;
        void *userdata;
+       GDestroyNotify data_destroy;
 };
 
 static gboolean cpin_check(gpointer userdata);
@@ -574,7 +575,8 @@ static gboolean cpin_check(gpointer userdata)
 struct at_util_sim_state_query *at_util_sim_state_query_new(GAtChat *chat,
                                                guint interval, guint num_times,
                                                at_util_sim_inserted_cb_t cb,
-                                               void *userdata)
+                                               void *userdata,
+                                               GDestroyNotify data_destroy)
 {
        struct at_util_sim_state_query *req;
 
@@ -585,6 +587,7 @@ struct at_util_sim_state_query 
*at_util_sim_state_query_new(GAtChat *chat,
        req->num_times = num_times;
        req->cb = cb;
        req->userdata = userdata;
+       req->data_destroy = data_destroy;
 
        cpin_check(req);
 
@@ -599,5 +602,8 @@ void at_util_sim_state_query_free(struct 
at_util_sim_state_query *req)
        if (req->cpin_poll_source > 0)
                g_source_remove(req->cpin_poll_source);
 
+       if (req->data_destroy)
+               req->data_destroy(req->userdata);
+
        g_free(req);
 }
diff --git a/drivers/atmodem/atutil.h b/drivers/atmodem/atutil.h
index 5046547..5ab9901 100644
--- a/drivers/atmodem/atutil.h
+++ b/drivers/atmodem/atutil.h
@@ -79,7 +79,8 @@ gboolean at_util_parse_attr(GAtResult *result, const char 
*prefix,
 struct at_util_sim_state_query *at_util_sim_state_query_new(GAtChat *chat,
                                                guint interval, guint num_times,
                                                at_util_sim_inserted_cb_t cb,
-                                               void *userdata);
+                                               void *userdata,
+                                               GDestroyNotify data_destroy);
 void at_util_sim_state_query_free(struct at_util_sim_state_query *req);
 
 struct cb_data {
-- 
1.7.4.1

_______________________________________________
ofono mailing list
ofono@ofono.org
http://lists.ofono.org/listinfo/ofono

Reply via email to