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.
diff --git a/src/backend.c b/src/backend.c
index 3cc568c..9a5b196 100644
--- a/src/backend.c
+++ b/src/backend.c
@@ -260,8 +260,8 @@
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 5d522ab..05bfd47 100644
--- a/src/proto_http.c
+++ b/src/proto_http.c
@@ -1303,15 +1303,13 @@
* 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 @@
* 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);
*/