]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
CLEANUP: http: make it more obvious that msg->som is always null outside of chunks
authorWilly Tarreau <w@1wt.eu>
Fri, 18 May 2012 21:04:32 +0000 (23:04 +0200)
committerWilly Tarreau <w@1wt.eu>
Fri, 18 May 2012 21:04:32 +0000 (23:04 +0200)
Since the recent buffer reorg, msg->som is redundant with buf->p but still
appears at a number of places. This tiny patch allows to confirm that som
follows two states :
  - 0 from the moment the message starts to be parsed
  - relative offset to ->p for start of chunk when parsing chunks

During this second state, ->sol is never used, so we should probably merge
the two.

src/backend.c
src/proto_http.c

index 3cc568c4158e70176be9b6b8206fbd3f204155b0..9a5b1968f0c737bfd7de0f0c9a786648ac705880 100644 (file)
@@ -260,8 +260,8 @@ struct server *get_server_ph_post(struct session *s)
        const char      *params = b_ptr(req, (int)(msg->sov - req->o));
        const char      *p    = params;
 
-       if (len > buffer_len(req) - (msg->sov - msg->som))
-               len = buffer_len(req) - (msg->sov - msg->som);
+       if (len > buffer_len(req) - msg->sov)
+               len = buffer_len(req) - msg->sov;
 
        if (len == 0)
                return NULL;
index 5d522ab42e86b051dc884b6406e158c8798e59df..05bfd47cd78a7f5efe46161a7fba116bd0142d2c 100644 (file)
@@ -1303,15 +1303,13 @@ void http_msg_analyzer(struct http_msg *msg, struct hdr_idx *idx)
                         * first if we need to remove some CRLF. We can only
                         * do this when o=0.
                         */
-                       char *beg = buf->p;
-
-                       if (unlikely(ptr != beg)) {
+                       if (unlikely(ptr != buf->p)) {
                                if (buf->o)
                                        goto http_msg_ood;
                                /* Remove empty leading lines, as recommended by RFC2616. */
-                               bi_fast_delete(buf, ptr - beg);
+                               bi_fast_delete(buf, ptr - buf->p);
                        }
-                       msg->sol = msg->som = ptr - buf->p;
+                       msg->sol = msg->som = 0;
                        hdr_idx_init(idx);
                        state = HTTP_MSG_RPVER;
                        goto http_msg_rpver;
@@ -1370,15 +1368,13 @@ void http_msg_analyzer(struct http_msg *msg, struct hdr_idx *idx)
                         * first if we need to remove some CRLF. We can only
                         * do this when o=0.
                         */
-                       char *beg = buf->p;
-
-                       if (likely(ptr != beg)) {
+                       if (likely(ptr != buf->p)) {
                                if (buf->o)
                                        goto http_msg_ood;
                                /* Remove empty leading lines, as recommended by RFC2616. */
-                               bi_fast_delete(buf, ptr - beg);
+                               bi_fast_delete(buf, ptr - buf->p);
                        }
-                       msg->sol = msg->som = ptr - buf->p;
+                       msg->sol = msg->som = 0;
                        /* we will need this when keep-alive will be supported
                           hdr_idx_init(idx);
                         */