---
 lib/obex_client.c |   11 ++++++-----
 lib/obex_server.c |    4 ++--
 2 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/lib/obex_client.c b/lib/obex_client.c
index dc7502e..efaf9f3 100644
--- a/lib/obex_client.c
+++ b/lib/obex_client.c
@@ -130,17 +130,18 @@ static int obex_client_recv_prepare_tx(obex_t *self)
 {
        DEBUG(4, "STATE: RECV/PREPARE_TX\n");
 
+       /* Sending ABORT is allowed even during SRM */
+       if (self->object->abort == 1) {
+               self->state = STATE_ABORT;
+               return obex_client_abort_prepare(self);
+       }
+
        if (self->object->rsp_mode == OBEX_RSP_MODE_NORMAL ||
            (self->object->rsp_mode == OBEX_RSP_MODE_SINGLE &&
             self->srm_flags & OBEX_SRM_FLAG_WAIT_REMOTE))
        {
                int ret;
 
-               if (self->object->abort == 1) {
-                       self->state = STATE_ABORT;
-                       return obex_client_abort_prepare(self);
-               }
-
                ret = obex_object_prepare_send(self, self->object, TRUE, FALSE);
                if (ret == 1) {
                        self->substate = SUBSTATE_TRANSMIT_TX;
diff --git a/lib/obex_server.c b/lib/obex_server.c
index ecad161..3a8d179 100644
--- a/lib/obex_server.c
+++ b/lib/obex_server.c
@@ -180,7 +180,7 @@ static int obex_server_send(obex_t *self)
                DEBUG(1, "Got OBEX_ABORT request!\n");
                obex_response_request(self, OBEX_RSP_SUCCESS);
                self->state = STATE_IDLE;
-               obex_deliver_event(self, OBEX_EV_ABORT, self->object->opcode, 
cmd, TRUE);
+               obex_deliver_event(self, OBEX_EV_ABORT, self->object->opcode, 
0, TRUE);
                /* This is not an Obex error, it is just that the peer
                 * aborted the request, so return 0 - Jean II */
                return 0;
@@ -303,7 +303,7 @@ static int obex_server_recv(obex_t *self, int first)
                obex_response_request(self, OBEX_RSP_SUCCESS);
                self->state = STATE_IDLE;
                obex_deliver_event(self, OBEX_EV_ABORT, self->object->opcode,
-                                                               cmd, TRUE);
+                                                               0, TRUE);
                /* This is not an Obex error, it is just that the peer
                 * aborted the request, so return 0 - Jean II */
                return 0;
-- 
1.7.5.4


------------------------------------------------------------------------------
AppSumo Presents a FREE Video for the SourceForge Community by Eric 
Ries, the creator of the Lean Startup Methodology on "Lean Startup 
Secrets Revealed." This video shows you how to validate your ideas, 
optimize your ideas and identify your business strategy.
http://p.sf.net/sfu/appsumosfdev2dev
_______________________________________________
Openobex-users mailing list
Openobex-users@lists.sourceforge.net
http://lists.sourceforge.net/lists/listinfo/openobex-users

Reply via email to