Diff between d1ad690084f04efc36800abac0c653e362267d18 and 60263d9a33d58baad3feb56b936ecceaedfe7f29

Changed Files

File Additions Deletions Status
gobex/gobex-transfer.c +20 -0 modified
gobex/gobex-transfer.h +2 -0 modified

Full Patch

diff --git a/gobex/gobex-transfer.c b/gobex/gobex-transfer.c
index b215d29..189282d 100644
--- a/gobex/gobex-transfer.c
+++ b/gobex/gobex-transfer.c
@@ -402,3 +402,23 @@ guint g_obex_get_rsp(GObex *obex, GObexPacket *req,
 
 	return transfer->id;
 }
+
+gboolean g_obex_cancel_transfer(guint id)
+{
+	struct transfer *transfer = NULL;
+	GSList *l;
+
+	for (l = transfers; l != NULL; l = g_slist_next(l)) {
+		struct transfer *t = l->data;
+		if (t->id == id) {
+			transfer = t;
+			break;
+		}
+	}
+
+	if (transfer == NULL)
+		return FALSE;
+
+	transfer_free(transfer);
+	return TRUE;
+}
diff --git a/gobex/gobex-transfer.h b/gobex/gobex-transfer.h
index 3e3089f..a8a0041 100644
--- a/gobex/gobex-transfer.h
+++ b/gobex/gobex-transfer.h
@@ -43,4 +43,6 @@ guint g_obex_get_rsp(GObex *obex, GObexPacket *req,
 			GObexDataProducer data_func, GObexFunc complete_func,
 			gpointer user_data, GError **err);
 
+gboolean g_obex_cancel_transfer(guint id);
+
 #endif /* __GOBEX_TRANSFER_H_ */