CLEANUP: http-client: Remove useless indentation when sending request body

It was useless to have an indentation to handle HTTPCLIENT_S_REQ_BODY state
in the http-client I/O handler.
This commit is contained in:
Christopher Faulet 2025-07-22 08:14:24 +02:00
parent 217da087fd
commit 96aa251d20

View File

@ -534,7 +534,6 @@ void httpclient_applet_io_handler(struct appctx *appctx)
goto out; goto out;
while (1) { while (1) {
/* required to stop */ /* required to stop */
if (hc->flags & HTTPCLIENT_FA_STOP) if (hc->flags & HTTPCLIENT_FA_STOP)
goto error; goto error;
@ -575,77 +574,74 @@ void httpclient_applet_io_handler(struct appctx *appctx)
case HTTPCLIENT_S_REQ_BODY: case HTTPCLIENT_S_REQ_BODY:
/* call the payload callback */ /* call the payload callback */
{ if (hc->ops.req_payload) {
if (hc->ops.req_payload) { struct htx *hc_htx;
struct htx *hc_htx;
if (co_data(res)) { if (co_data(res)) {
/* A response was received but we are still process the request. /* A response was received but we are still process the request.
* It is unexpected and not really supported with the current API. * It is unexpected and not really supported with the current API.
* So lets drain the request to avoid any issue. * So lets drain the request to avoid any issue.
*/ */
b_reset(&hc->req.buf); b_reset(&hc->req.buf);
hc->flags |= HTTPCLIENT_FA_DRAIN_REQ; hc->flags |= HTTPCLIENT_FA_DRAIN_REQ;
appctx->st0 = HTTPCLIENT_S_RES_STLINE;
break;
}
/* call the request callback */
hc->ops.req_payload(hc);
hc_htx = htxbuf(&hc->req.buf);
if (htx_is_empty(hc_htx))
goto out;
htx = htx_from_buf(&req->buf);
if (htx_is_empty(htx)) {
size_t data = hc_htx->data;
/* Here htx_to_buf() will set buffer data to 0 because
* the HTX is empty, and allow us to do an xfer.
*/
htx_to_buf(hc_htx, &hc->req.buf);
htx_to_buf(htx, &req->buf);
b_xfer(&req->buf, &hc->req.buf, b_data(&hc->req.buf));
channel_add_input(req, data);
} else {
struct htx_ret ret;
size_t data = htx->data;
ret = htx_xfer_blks(htx, hc_htx, htx_used_space(hc_htx), HTX_BLK_UNUSED);
if (!ret.ret) {
sc_need_room(sc, channel_htx_recv_max(req, htx) + 1);
goto out;
}
data = htx->data - data;
channel_add_input(req, data);
/* we must copy the EOM if we empty the buffer */
if (htx_is_empty(hc_htx)) {
htx->flags |= (hc_htx->flags & HTX_FL_EOM);
}
htx_to_buf(htx, &req->buf);
htx_to_buf(hc_htx, &hc->req.buf);
}
if (!b_data(&hc->req.buf))
b_free(&hc->req.buf);
}
htx = htxbuf(&req->buf);
/* if the request contains the HTX_FL_EOM, we finished the request part. */
if (htx->flags & HTX_FL_EOM) {
appctx->st0 = HTTPCLIENT_S_RES_STLINE; appctx->st0 = HTTPCLIENT_S_RES_STLINE;
se_fl_set(appctx->sedesc, SE_FL_EOI);
break; break;
} }
applet_have_more_data(appctx); /* call the request callback */
goto process_data; /* we need to leave the IO handler once we wrote the request */ hc->ops.req_payload(hc);
hc_htx = htxbuf(&hc->req.buf);
if (htx_is_empty(hc_htx))
goto out;
htx = htx_from_buf(&req->buf);
if (htx_is_empty(htx)) {
size_t data = hc_htx->data;
/* Here htx_to_buf() will set buffer data to 0 because
* the HTX is empty, and allow us to do an xfer.
*/
htx_to_buf(hc_htx, &hc->req.buf);
htx_to_buf(htx, &req->buf);
b_xfer(&req->buf, &hc->req.buf, b_data(&hc->req.buf));
channel_add_input(req, data);
} else {
struct htx_ret ret;
size_t data = htx->data;
ret = htx_xfer_blks(htx, hc_htx, htx_used_space(hc_htx), HTX_BLK_UNUSED);
if (!ret.ret) {
sc_need_room(sc, channel_htx_recv_max(req, htx) + 1);
goto out;
}
data = htx->data - data;
channel_add_input(req, data);
/* we must copy the EOM if we empty the buffer */
if (htx_is_empty(hc_htx)) {
htx->flags |= (hc_htx->flags & HTX_FL_EOM);
}
htx_to_buf(htx, &req->buf);
htx_to_buf(hc_htx, &hc->req.buf);
}
if (!b_data(&hc->req.buf))
b_free(&hc->req.buf);
} }
break;
htx = htxbuf(&req->buf);
/* if the request contains the HTX_FL_EOM, we finished the request part. */
if (htx->flags & HTX_FL_EOM) {
appctx->st0 = HTTPCLIENT_S_RES_STLINE;
se_fl_set(appctx->sedesc, SE_FL_EOI);
break;
}
applet_have_more_data(appctx);
goto process_data; /* we need to leave the IO handler once we wrote the request */
case HTTPCLIENT_S_RES_STLINE: case HTTPCLIENT_S_RES_STLINE:
/* in HTX mode, don't try to copy the stline /* in HTX mode, don't try to copy the stline