From 93f6f455d19b74a69d63b7d2bbbc1a2a009d4216 Mon Sep 17 00:00:00 2001 From: Slawomir Bochenski Date: Fri, 7 Oct 2011 11:11:10 +0200 Subject: [PATCH] obexd: Fix OPP not sending TransferCompleted signal Commit 934b3b2f5f8432b67822be9f83a141fe3783cbd7 introduced a regression in OPP, by making it not send TransferCompleted signal. This happened because OPP was calling manager_emit_transfer_completed() on .reset(), and manager_emit_transfer_completed() in turn checks if the os->object is not NULL. This fixes this by moving clearing os->object after doing service driver .reset(). --- obexd/src/obex.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/obexd/src/obex.c b/obexd/src/obex.c index 59bbe7a66..a0c17c177 100644 --- a/obexd/src/obex.c +++ b/obexd/src/obex.c @@ -288,8 +288,6 @@ static void os_reset_session(struct obex_session *os) if (os->object) { os->driver->set_io_watch(os->object, NULL, NULL); os->driver->close(os->object); - os->object = NULL; - os->obj = NULL; if (os->aborted && os->cmd == OBEX_CMD_PUT && os->path && os->driver->remove) os->driver->remove(os->path); @@ -315,6 +313,8 @@ static void os_reset_session(struct obex_session *os) os->path = NULL; } + os->object = NULL; + os->obj = NULL; os->driver = NULL; os->aborted = FALSE; os->pending = 0; -- 2.47.3