mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-01-03 18:52:04 +00:00
BUG/MINOR: http-htx: Do case-insensive comparisons on Host header name
When a header is added or modified, in http_add_header() or http_replace_header(), a comparison is performed on its name to know if it is the Host header and if the authority part of the uri must be updated or not. This comparision must be case-insensive. This patch should fix the issue #522. It must be backported to 2.1.
This commit is contained in:
parent
2711e51016
commit
3e1f7f4a39
@ -1398,7 +1398,6 @@ static enum act_parse_ret parse_http_del_header(const char **args, int *orig_arg
|
||||
|
||||
rule->arg.http.str.ptr = strdup(args[cur_arg]);
|
||||
rule->arg.http.str.len = strlen(rule->arg.http.str.ptr);
|
||||
|
||||
px->conf.args.ctx = (rule->from == ACT_F_HTTP_REQ ? ARGC_HRQ : ARGC_HRS);
|
||||
|
||||
LIST_INIT(&rule->arg.http.fmt);
|
||||
|
@ -215,7 +215,7 @@ int http_add_header(struct htx *htx, const struct ist n, const struct ist v)
|
||||
|
||||
end:
|
||||
sl = http_get_stline(htx);
|
||||
if (sl && (sl->flags & HTX_SL_F_HAS_AUTHORITY) && isteq(n, ist("host"))) {
|
||||
if (sl && (sl->flags & HTX_SL_F_HAS_AUTHORITY) && isteqi(n, ist("host"))) {
|
||||
if (!http_update_authority(htx, sl, v))
|
||||
goto fail;
|
||||
}
|
||||
@ -491,7 +491,7 @@ int http_replace_header(struct htx *htx, struct http_hdr_ctx *ctx,
|
||||
goto fail;
|
||||
|
||||
sl = http_get_stline(htx);
|
||||
if (sl && (sl->flags & HTX_SL_F_HAS_AUTHORITY) && isteq(name, ist("host"))) {
|
||||
if (sl && (sl->flags & HTX_SL_F_HAS_AUTHORITY) && isteqi(name, ist("host"))) {
|
||||
if (!http_update_authority(htx, sl, value))
|
||||
goto fail;
|
||||
ctx->blk = NULL;
|
||||
|
Loading…
Reference in New Issue
Block a user