summaryrefslogtreecommitdiff
path: root/client/session.c
diff options
context:
space:
mode:
authorLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2012-02-08 11:44:05 +0200
committerJohan Hedberg <johan.hedberg@intel.com>2012-02-08 12:41:31 +0200
commita71fb515a8e58ad8358a849591ffa070f74da11e (patch)
tree9bb3504755a2343bd616f967626d867c62edf2fa /client/session.c
parent4a691919b9e4932a16f4ca0678394852975d11a3 (diff)
downloadobexd-a71fb515a8e58ad8358a849591ffa070f74da11e.tar.gz
client: introduce obc_session_cancel
Diffstat (limited to 'client/session.c')
-rw-r--r--client/session.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/client/session.c b/client/session.c
index 7e7dea6..a1a528a 100644
--- a/client/session.c
+++ b/client/session.c
@@ -1394,3 +1394,24 @@ guint obc_session_delete(struct obc_session *session, const char *file,
session->p = p;
return p->id;
}
+
+void obc_session_cancel(struct obc_session *session, guint id,
+ gboolean remove)
+{
+ struct pending_request *p = session->p;
+
+ if (p == NULL || p->id != id)
+ return;
+
+ if (p->req_id == 0)
+ return;
+
+ g_obex_cancel_req(session->obex, p->req_id, remove);
+ if (!remove)
+ return;
+
+ pending_request_free(p);
+ session->p = NULL;
+
+ session_process_queue(session);
+}