A regression was introduced in
730b983 ("MINOR: proxy: move 'forwardfor'
option to http_ext")
Indeed, when the forwardfor if-none option is specified on the frontend
but forwardfor is not specified at all on the backend: if-none from the
frontend is ignored.
But this behavior conflicts with the historical one, if-none should only
be ignored if forwardfor is also enabled on the backend and if-none is
not set there.
It should fix GH #2187.
This should be backported in 2.8 with
730b983 ("MINOR: proxy: move
'forwardfor' option to http_ext")
struct http_hdr_ctx ctx = { .blk = NULL };
struct ist hdr = ((b_xff) ? b_xff->hdr_name : f_xff->hdr_name);
- if (f_xff && f_xff->mode == HTTP_XFF_IFNONE &&
- b_xff && b_xff->mode == HTTP_XFF_IFNONE &&
+ if ((!f_xff || f_xff->mode == HTTP_XFF_IFNONE) &&
+ (!b_xff || b_xff->mode == HTTP_XFF_IFNONE) &&
http_find_header(htx, hdr, &ctx, 0)) {
/* The header is set to be added only if none is present
* and we found it, so don't do anything.