--- lib/obex_client.c | 27 ++++++++++++++------------- lib/obex_object.c | 8 -------- lib/obex_server.c | 21 ++++++++++++--------- 3 files changed, 26 insertions(+), 30 deletions(-)
diff --git a/lib/obex_client.c b/lib/obex_client.c index 0282886..9d07c29 100644 --- a/lib/obex_client.c +++ b/lib/obex_client.c @@ -338,21 +338,22 @@ static int obex_client_send(obex_t *self) * PUT). * No headeroffset needed because 'connect' is single * packet (or we deny it). */ - ret = -1; - if (self->object->opcode == OBEX_CMD_CONNECT) - ret = obex_object_receive(self, msg); - if (ret < 0) { - obex_deliver_event(self, OBEX_EV_PARSEERR, + if (!self->object->abort) { + ret = -1; + if (self->object->opcode != OBEX_CMD_CONNECT) + ret = obex_object_receive(self, msg); + if (ret < 0) { + obex_deliver_event(self, OBEX_EV_PARSEERR, self->object->opcode, 0, TRUE); - self->mode = OBEX_MODE_SERVER; - self->state = STATE_IDLE; - return -1; + self->mode = OBEX_MODE_SERVER; + self->state = STATE_IDLE; + return -1; + } + /* Note : we may want to get rid of received header, + * however they are mixed with legitimate headers, + * and the user may expect to consult them later. + * So, leave them here (== overhead). */ } - - /* Note : we may want to get rid of received header, - * however they are mixed with legitimate headers, - * and the user may expect to consult them later. - * So, leave them here (== overhead). */ } obex_data_receive_finished(self); diff --git a/lib/obex_object.c b/lib/obex_object.c index 9f84862..00c75ee 100644 --- a/lib/obex_object.c +++ b/lib/obex_object.c @@ -609,9 +609,6 @@ int obex_object_finished(obex_t *self, obex_object_t *object, int allowfinalcmd) { int finished = 0; - if (object->abort) - return 1; - if (object->suspend) return 0; @@ -762,11 +759,6 @@ static void obex_object_receive_stream(obex_t *self, uint8_t hi, DEBUG(4, "\n"); - if (object->abort) { - DEBUG(3, "Ignoring incoming data because request was aborted\n"); - return; - } - /* Spare the app this empty nonlast body-hdr */ if (hi == OBEX_HDR_BODY && len == 0) return; diff --git a/lib/obex_server.c b/lib/obex_server.c index 4b701ba..0995452 100644 --- a/lib/obex_server.c +++ b/lib/obex_server.c @@ -241,15 +241,18 @@ static int obex_server_send(obex_t *self) * condition itself. * No headeroffset needed because 'connect' is single packet (or * we deny it). */ - ret = -1; - if (cmd != OBEX_CMD_CONNECT) - ret = obex_object_receive(self, msg); - if (ret < 0) - return obex_server_bad_request(self); - - /* Note: we may want to get rid of received header, however they - * are mixed with legitimate headers, and the user may expect to - * consult them later. So, leave them here (== overhead). */ + if (!self->object->abort) { + ret = -1; + if (cmd != OBEX_CMD_CONNECT) + ret = obex_object_receive(self, msg); + if (ret < 0) + return obex_server_bad_request(self); + + /* Note: we may want to get rid of received header, + * however they are mixed with legitimate headers, and + * the user may expect to consult them later. So, leave + * them here (== overhead). */ + } } obex_data_receive_finished(self); -- 1.7.5.4 ------------------------------------------------------------------------------ Got Input? Slashdot Needs You. Take our quick survey online. Come on, we don't ask for help often. Plus, you'll get a chance to win $100 to spend on ThinkGeek. http://p.sf.net/sfu/slashdot-survey _______________________________________________ Openobex-users mailing list Openobex-users@lists.sourceforge.net http://lists.sourceforge.net/lists/listinfo/openobex-users