MINOR: mux_h1/h2: simplify the zero-copy Rx alignment
The transpory layer now respects buffer alignment, so we don't need to
cheat anymore pretending we have some data at the head, adjusting the
buffer's head is enough.
diff --git a/src/mux_h1.c b/src/mux_h1.c
index 7031d53..a20e29a 100644
--- a/src/mux_h1.c
+++ b/src/mux_h1.c
@@ -1664,7 +1664,6 @@
max = buf_room_for_htx_data(&h1c->ibuf);
if (max) {
- int aligned = 0;
h1c->flags &= ~H1C_F_IN_FULL;
b_realign_if_empty(&h1c->ibuf);
@@ -1672,14 +1671,9 @@
/* try to pre-align the buffer like the rxbufs will be
* to optimize memory copies.
*/
- h1c->ibuf.data = sizeof(struct htx);
- aligned = 1;
- }
- ret = conn->xprt->rcv_buf(conn, &h1c->ibuf, max, 0);
- if (aligned) {
- h1c->ibuf.data -= sizeof(struct htx);
h1c->ibuf.head = sizeof(struct htx);
}
+ ret = conn->xprt->rcv_buf(conn, &h1c->ibuf, max, 0);
}
if (ret > 0) {
rcvd = 1;
diff --git a/src/mux_h2.c b/src/mux_h2.c
index 2e3753d..4ca0907 100644
--- a/src/mux_h2.c
+++ b/src/mux_h2.c
@@ -2444,8 +2444,6 @@
}
do {
- int aligned = 0;
-
b_realign_if_empty(buf);
if (!b_data(buf) && (h2c->proxy->options2 & PR_O2_USE_HTX)) {
/* HTX in use : try to pre-align the buffer like the
@@ -2457,9 +2455,7 @@
* have a few bytes there.
*/
max = buf_room_for_htx_data(buf) + 9;
- buf->head = 0;
- buf->data = sizeof(struct htx) - 9;
- aligned = 1;
+ buf->head = sizeof(struct htx) - 9;
}
else
max = b_room(buf);
@@ -2468,11 +2464,6 @@
ret = conn->xprt->rcv_buf(conn, buf, max, 0);
else
ret = 0;
-
- if (aligned) {
- buf->data -= sizeof(struct htx) - 9;
- buf->head = sizeof(struct htx) - 9;
- }
} while (ret > 0);
if (h2_recv_allowed(h2c) && (b_data(buf) < buf->size))