mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-10 00:57:02 +02:00
MINOR: httpclient: Make the CLI flags public for future use
Those flags used by the http_client in its CLI function might come to use for OCSP updates that will strongly rely on the http client.
This commit is contained in:
parent
2b96364b35
commit
95e7cf1ddf
@ -59,4 +59,11 @@ enum {
|
|||||||
|
|
||||||
#define HTTPCLIENT_USERAGENT "HAProxy"
|
#define HTTPCLIENT_USERAGENT "HAProxy"
|
||||||
|
|
||||||
|
/* What kind of data we need to read */
|
||||||
|
#define HC_F_RES_STLINE 0x01
|
||||||
|
#define HC_F_RES_HDR 0x02
|
||||||
|
#define HC_F_RES_BODY 0x04
|
||||||
|
#define HC_F_RES_END 0x08
|
||||||
|
|
||||||
|
|
||||||
#endif /* ! _HAPROXY_HTTCLIENT__T_H */
|
#endif /* ! _HAPROXY_HTTCLIENT__T_H */
|
||||||
|
@ -59,12 +59,6 @@ static char *resolvers_prefer = NULL;
|
|||||||
* The functions will be starting by "hc_cli" for "httpclient cli"
|
* The functions will be starting by "hc_cli" for "httpclient cli"
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* What kind of data we need to read */
|
|
||||||
#define HC_CLI_F_RES_STLINE 0x01
|
|
||||||
#define HC_CLI_F_RES_HDR 0x02
|
|
||||||
#define HC_CLI_F_RES_BODY 0x04
|
|
||||||
#define HC_CLI_F_RES_END 0x08
|
|
||||||
|
|
||||||
/* the CLI context for the httpclient command */
|
/* the CLI context for the httpclient command */
|
||||||
struct hcli_svc_ctx {
|
struct hcli_svc_ctx {
|
||||||
struct httpclient *hc; /* the httpclient instance */
|
struct httpclient *hc; /* the httpclient instance */
|
||||||
@ -83,7 +77,7 @@ void hc_cli_res_stline_cb(struct httpclient *hc)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
ctx = appctx->svcctx;
|
ctx = appctx->svcctx;
|
||||||
ctx->flags |= HC_CLI_F_RES_STLINE;
|
ctx->flags |= HC_F_RES_STLINE;
|
||||||
appctx_wakeup(appctx);
|
appctx_wakeup(appctx);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -96,7 +90,7 @@ void hc_cli_res_headers_cb(struct httpclient *hc)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
ctx = appctx->svcctx;
|
ctx = appctx->svcctx;
|
||||||
ctx->flags |= HC_CLI_F_RES_HDR;
|
ctx->flags |= HC_F_RES_HDR;
|
||||||
appctx_wakeup(appctx);
|
appctx_wakeup(appctx);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -109,7 +103,7 @@ void hc_cli_res_body_cb(struct httpclient *hc)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
ctx = appctx->svcctx;
|
ctx = appctx->svcctx;
|
||||||
ctx->flags |= HC_CLI_F_RES_BODY;
|
ctx->flags |= HC_F_RES_BODY;
|
||||||
appctx_wakeup(appctx);
|
appctx_wakeup(appctx);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -122,7 +116,7 @@ void hc_cli_res_end_cb(struct httpclient *hc)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
ctx = appctx->svcctx;
|
ctx = appctx->svcctx;
|
||||||
ctx->flags |= HC_CLI_F_RES_END;
|
ctx->flags |= HC_F_RES_END;
|
||||||
appctx_wakeup(appctx);
|
appctx_wakeup(appctx);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -197,15 +191,15 @@ static int hc_cli_io_handler(struct appctx *appctx)
|
|||||||
struct httpclient *hc = ctx->hc;
|
struct httpclient *hc = ctx->hc;
|
||||||
struct http_hdr *hdrs, *hdr;
|
struct http_hdr *hdrs, *hdr;
|
||||||
|
|
||||||
if (ctx->flags & HC_CLI_F_RES_STLINE) {
|
if (ctx->flags & HC_F_RES_STLINE) {
|
||||||
chunk_printf(&trash, "%.*s %d %.*s\n", (unsigned int)istlen(hc->res.vsn), istptr(hc->res.vsn),
|
chunk_printf(&trash, "%.*s %d %.*s\n", (unsigned int)istlen(hc->res.vsn), istptr(hc->res.vsn),
|
||||||
hc->res.status, (unsigned int)istlen(hc->res.reason), istptr(hc->res.reason));
|
hc->res.status, (unsigned int)istlen(hc->res.reason), istptr(hc->res.reason));
|
||||||
if (applet_putchk(appctx, &trash) == -1)
|
if (applet_putchk(appctx, &trash) == -1)
|
||||||
goto more;
|
goto more;
|
||||||
ctx->flags &= ~HC_CLI_F_RES_STLINE;
|
ctx->flags &= ~HC_F_RES_STLINE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ctx->flags & HC_CLI_F_RES_HDR) {
|
if (ctx->flags & HC_F_RES_HDR) {
|
||||||
chunk_reset(&trash);
|
chunk_reset(&trash);
|
||||||
hdrs = hc->res.hdrs;
|
hdrs = hc->res.hdrs;
|
||||||
for (hdr = hdrs; isttest(hdr->v); hdr++) {
|
for (hdr = hdrs; isttest(hdr->v); hdr++) {
|
||||||
@ -216,10 +210,10 @@ static int hc_cli_io_handler(struct appctx *appctx)
|
|||||||
goto too_many_hdrs;
|
goto too_many_hdrs;
|
||||||
if (applet_putchk(appctx, &trash) == -1)
|
if (applet_putchk(appctx, &trash) == -1)
|
||||||
goto more;
|
goto more;
|
||||||
ctx->flags &= ~HC_CLI_F_RES_HDR;
|
ctx->flags &= ~HC_F_RES_HDR;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ctx->flags & HC_CLI_F_RES_BODY) {
|
if (ctx->flags & HC_F_RES_BODY) {
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
ret = httpclient_res_xfer(hc, sc_ib(sc));
|
ret = httpclient_res_xfer(hc, sc_ib(sc));
|
||||||
@ -228,12 +222,12 @@ static int hc_cli_io_handler(struct appctx *appctx)
|
|||||||
/* remove the flag if the buffer was emptied */
|
/* remove the flag if the buffer was emptied */
|
||||||
if (httpclient_data(hc))
|
if (httpclient_data(hc))
|
||||||
goto more;
|
goto more;
|
||||||
ctx->flags &= ~HC_CLI_F_RES_BODY;
|
ctx->flags &= ~HC_F_RES_BODY;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* we must close only if F_END is the last flag */
|
/* we must close only if F_END is the last flag */
|
||||||
if (ctx->flags == HC_CLI_F_RES_END) {
|
if (ctx->flags == HC_F_RES_END) {
|
||||||
ctx->flags &= ~HC_CLI_F_RES_END;
|
ctx->flags &= ~HC_F_RES_END;
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user