[BUG] http: the request URI pointer is relative to the buffer
The rq.u field is relative to buf->data, not to msg->sol. We have
to subtract msg->som everywhere this error was made. Maybe it will
be simpler to have a pointer to the buffer in the message and find
appropriate data there.
diff --git a/src/backend.c b/src/backend.c
index 8ce981c..fedac39 100644
--- a/src/backend.c
+++ b/src/backend.c
@@ -535,19 +535,19 @@
case BE_LB_HASH_URI:
/* URI hashing */
s->srv = get_server_uh(s->be,
- s->txn.req.sol + s->txn.req.sl.rq.u,
+ s->txn.req.sol - s->txn.req.som + s->txn.req.sl.rq.u,
s->txn.req.sl.rq.u_l);
break;
case BE_LB_HASH_PRM:
/* URL Parameter hashing */
if (s->txn.meth == HTTP_METH_POST &&
- memchr(s->txn.req.sol + s->txn.req.sl.rq.u, '&',
+ memchr(s->txn.req.sol - s->txn.req.som + s->txn.req.sl.rq.u, '&',
s->txn.req.sl.rq.u_l ) == NULL)
s->srv = get_server_ph_post(s);
else
s->srv = get_server_ph(s->be,
- s->txn.req.sol + s->txn.req.sl.rq.u,
+ s->txn.req.sol - s->txn.req.som + s->txn.req.sl.rq.u,
s->txn.req.sl.rq.u_l);
break;