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


------------------------------------------------------------------------------
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