From: Christopher Faulet Date: Wed, 16 Oct 2019 07:38:27 +0000 (+0200) Subject: MINOR: htx: Add a flag on HTX to known when a response was generated by HAProxy X-Git-Tag: v2.1-dev3~65 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=065118166c4026eaf942a433ca884a6ecec54176;p=thirdparty%2Fhaproxy.git MINOR: htx: Add a flag on HTX to known when a response was generated by HAProxy The flag HTX_FL_PROXY_RESP is now set on responses generated by HAProxy, excluding responses returned by applets and services. It is an informative flag set by the applicative layer. --- diff --git a/include/common/htx.h b/include/common/htx.h index 5527a473fc..b22da99b4f 100644 --- a/include/common/htx.h +++ b/include/common/htx.h @@ -149,6 +149,7 @@ #define HTX_FL_PARSING_ERROR 0x00000001 /* Set when a parsing error occurred */ #define HTX_FL_PROCESSING_ERROR 0x00000002 /* Set when a processing error occurred */ #define HTX_FL_UPGRADE 0x00000004 /* Set when an upgrade is in progress */ +#define HTX_FL_PROXY_RESP 0x00000008 /* Set when the response was generated by HAProxy */ /* HTX block's type (max 15). */ diff --git a/src/http_ana.c b/src/http_ana.c index f1546fdd72..c16d61f9bd 100644 --- a/src/http_ana.c +++ b/src/http_ana.c @@ -2527,6 +2527,7 @@ int http_apply_redirect_rule(struct redirect_rule *rule, struct stream *s, struc /* let's log the request time */ s->logs.tv_request = now; + htx->flags |= HTX_FL_PROXY_RESP; data = htx->data - co_data(res); c_adv(res, data); res->total += data; @@ -4879,6 +4880,7 @@ void http_server_error(struct stream *s, struct stream_interface *si, int err, chn->buf.data = msg->data; memcpy(chn->buf.area, msg->area, msg->data); htx = htx_from_buf(&chn->buf); + htx->flags |= HTX_FL_PROXY_RESP; c_adv(chn, htx->data); chn->total += htx->data; } @@ -4909,6 +4911,7 @@ void http_reply_and_close(struct stream *s, short status, struct buffer *msg) chn->buf.data = msg->data; memcpy(chn->buf.area, msg->area, msg->data); htx = htx_from_buf(&chn->buf); + htx->flags |= HTX_FL_PROXY_RESP; c_adv(chn, htx->data); chn->total += htx->data; } @@ -5103,6 +5106,7 @@ static int http_reply_40x_unauthorized(struct stream *s, const char *auth_realm) if (!htx_add_endof(htx, HTX_BLK_EOM)) goto fail; + htx->flags |= HTX_FL_PROXY_RESP; data = htx->data - co_data(res); c_adv(res, data); res->total += data;