@@ -64,6 +64,8 @@ static void transfer_free(struct transfer *transfer)
g_obex_remove_request_function(transfer->obex,
transfer->abort_id);
+ g_obex_remove_responsefunc(transfer->obex);
+
g_obex_unref(transfer->obex);
g_free(transfer);
}
@@ -533,6 +533,12 @@ void g_obex_drop_tx_queue(GObex *obex)
pending_pkt_free(p);
}
+void g_obex_remove_responsefunc(GObex *obex)
+{
+ if (obex->pending_req)
+ obex->pending_req->rsp_func = NULL;
+}
+
static gboolean g_obex_send_internal(GObex *obex, struct pending_pkt *p,
GError **err)
{
@@ -51,6 +51,7 @@ void g_obex_suspend(GObex *obex);
void g_obex_resume(GObex *obex);
gboolean g_obex_srm_active(GObex *obex);
void g_obex_drop_tx_queue(GObex *obex);
+void g_obex_remove_responsefunc(GObex *obex);
GObex *g_obex_new(GIOChannel *io, GObexTransportType transport_type,
gssize rx_mtu, gssize tx_mtu);