diff options
author | Aki Niemi <aki.niemi@nokia.com> | 2010-11-23 16:08:11 +0200 |
---|---|---|
committer | Aki Niemi <aki.niemi@nokia.com> | 2010-12-22 17:13:47 +0200 |
commit | 188bbc5d3bfd2abc2c1036a49f308b0174b25605 (patch) | |
tree | 83b61ced10f3173c93ca12fa2e0bdef7cb481ef1 /gisi/client.c | |
parent | edd0b327e0479c5f3ce48f3d2b25fdc8abb379ea (diff) | |
download | ofono-188bbc5d3bfd2abc2c1036a49f308b0174b25605.tar.gz |
gisi: Add client API to reset instance
Calling this method will cancel any pending requests, and unsubscribe
from any pending subscriptions.
Diffstat (limited to 'gisi/client.c')
-rw-r--r-- | gisi/client.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/gisi/client.c b/gisi/client.c index d1fad2ea..e536d4e3 100644 --- a/gisi/client.c +++ b/gisi/client.c @@ -127,13 +127,25 @@ static void foreach_destroy(gpointer value, gpointer user) g_isi_pending_remove(op); } -void g_isi_client_destroy(GIsiClient *client) +void g_isi_client_reset(GIsiClient *client) { if (client == NULL) return; + if (!client->pending) + return; + g_slist_foreach(client->pending, foreach_destroy, client); g_slist_free(client->pending); + client->pending = NULL; +}; + +void g_isi_client_destroy(GIsiClient *client) +{ + if (!client) + return; + + g_isi_client_reset(client); g_free(client); } |