From 5e8a10df925d3c968d2819ba2765eb8e26f05a15 Mon Sep 17 00:00:00 2001 From: Luiz Augusto von Dentz Date: Wed, 8 Feb 2012 11:44:05 +0200 Subject: [PATCH] obexd: introduce obc_session_cancel --- obexd/client/session.c | 21 +++++++++++++++++++++ obexd/client/session.h | 2 ++ 2 files changed, 23 insertions(+) diff --git a/obexd/client/session.c b/obexd/client/session.c index 7e7dea626..a1a528ad1 100644 --- a/obexd/client/session.c +++ b/obexd/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); +} diff --git a/obexd/client/session.h b/obexd/client/session.h index ac5c27a59..008b4663b 100644 --- a/obexd/client/session.h +++ b/obexd/client/session.h @@ -89,3 +89,5 @@ guint obc_session_move(struct obc_session *session, const char *filename, guint obc_session_delete(struct obc_session *session, const char *file, session_callback_t func, void *user_data, GError **err); +void obc_session_cancel(struct obc_session *session, guint id, + gboolean remove); -- 2.47.3