The member can be replaced by a rather static usage of a new parameter to
obex_server_recv().
---
 lib/obex_object.h |    1 -
 lib/obex_server.c |   10 ++++------
 2 files changed, 4 insertions(+), 7 deletions(-)

diff --git a/lib/obex_object.h b/lib/obex_object.h
index eef3458..5bcbe0b 100644
--- a/lib/obex_object.h
+++ b/lib/obex_object.h
@@ -71,7 +71,6 @@ struct obex_object {
        int totallen;                   /* Size of all headers */
        int abort;                      /* Request shall be aborted */
 
-       int checked;                    /* OBEX_EV_REQCHECK has been signaled */
        enum obex_rsp_mode rsp_mode;    /* OBEX_RSP_MODE_* */
 
        int suspend;                    /* Temporarily stop transfering object 
*/
diff --git a/lib/obex_server.c b/lib/obex_server.c
index 1902e4f..401a98d 100644
--- a/lib/obex_server.c
+++ b/lib/obex_server.c
@@ -137,7 +137,7 @@ int obex_server_send(obex_t *self, buf_t *msg, int cmd, 
uint16_t len)
        return 0;
 }
 
-static int obex_server_recv(obex_t *self, buf_t *msg, int final,
+static int obex_server_recv(obex_t *self, buf_t *msg, int first, int final,
                                                        int cmd, uint16_t len)
 {
        int deny = 0;
@@ -191,10 +191,8 @@ static int obex_server_recv(obex_t *self, buf_t *msg, int 
final,
        /* Let the user decide whether to accept or deny a
         * multi-packet request by examining all headers in
         * the first packet */
-       if (!self->object->checked) {
+       if (first)
                obex_deliver_event(self, OBEX_EV_REQCHECK, cmd, 0, FALSE);
-               self->object->checked = 1;
-       }
 
        /* Everything except 0x1X and 0x2X means that the user
         * callback denied the request. In the denied cases
@@ -310,7 +308,7 @@ static int obex_server_idle(obex_t *self, buf_t *msg, int 
final,
        case OBEX_RSP_CONTINUE:
        case OBEX_RSP_SUCCESS:
                self->state = STATE_REC;
-               return obex_server_recv(self, msg, final, cmd, len);
+               return obex_server_recv(self, msg, 1, final, cmd, len);
 
        default:
                self->state = STATE_SEND;
@@ -341,7 +339,7 @@ int obex_server(obex_t *self)
                break;
 
        case STATE_REC:
-               ret = obex_server_recv(self, msg, final, cmd, len);
+               ret = obex_server_recv(self, msg, 0, final, cmd, len);
                break;
 
        case STATE_SEND:
-- 
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

Reply via email to