summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSlawomir Bochenski <lkslawek@gmail.com>2011-10-07 11:11:10 +0200
committerJohan Hedberg <johan.hedberg@intel.com>2011-10-11 15:55:03 +0300
commit38475ba497a4f8eb3f7c34074a231e62a23c1e28 (patch)
tree01c72bc1e6b7a22c33a78afce8eceaf56cd587a2
parente049dcca3d38a8c9e087092dfbfedbbb5504e598 (diff)
downloadobexd-38475ba497a4f8eb3f7c34074a231e62a23c1e28.tar.gz
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().
-rw-r--r--src/obex.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/obex.c b/src/obex.c
index 59bbe7a..a0c17c1 100644
--- a/src/obex.c
+++ b/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;