---
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.5.4
_______________________________________________
ofono mailing list
[email protected]
http://lists.ofono.org/listinfo/ofono