From 06a000f56e6fdfd229a1f948863b17bca07ddcbb Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Fri, 18 May 2012 23:04:32 +0200 Subject: [PATCH] CLEANUP: http: make it more obvious that msg->som is always null outside of chunks 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 | 4 ++-- src/proto_http.c | 16 ++++++---------- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/src/backend.c b/src/backend.c index 3cc568c41..9a5b1968f 100644 --- a/src/backend.c +++ b/src/backend.c @@ -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; diff --git a/src/proto_http.c b/src/proto_http.c index 5d522ab42..05bfd47cd 100644 --- a/src/proto_http.c +++ b/src/proto_http.c @@ -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); */