Hi.

Wed May 15 05:07:05 GMT+02:00 2019 Willy Tarreau :

> Hi Tim,
 >
 > On Tue, May 14, 2019 at 08:57:55PM +0200, Tim Duesterhus wrote:
 > > Okay, I did a sweep through the configuration parser and:
 > >
 > > 1. Made deprecated directives fatal and removed them from the docs. The
 > > error messages speak of "HAProxy 2.1", thus it should be merged into
 > > some kind of 'next' branch.
 > > 2. Made deprecated directives actually warn and remove them from the docs
 > > as well. No need to document deprecated options, users can simply peek
 > > into the old docs. Also the error messages are pretty clear on what
 > > needs to be done to fix it.
 >
 > OK, I think we can take all of these for a next branch indeed. Two of
 > them, the one adding a warning and the one removing the unused keyword
 > could be picked for 2.0 if you agree. Also I'll rename them "MEDIUM" as
 > they do change something in a way that is fixable by configuration,
 > these are not just functionally equivalent code cleanups.
 >
 > > What I did not update:
 > >
 > > 1. Usage of deprecated directives in the 'tests' directory. The fact that
 > > the tests still use deprecated directives indicates that no one even
 > > uses them any more. Maybe these tests should outright be removed?
 >
 > Many times I thought about removing them. But each time I look at them
 > I figure that some *might* still be usable. Now that we have the regtests
 > probably this is not true anymore. I also suspect a few of them are
 > referenced in the internal state machine tests, and might need to be
 > completely converted to regtests before being removed.
 >
 > > 2. 'req*' and 'rsp*'. I remember that they allow some modification that
 > > cannot easily be replicated otherwise (but I'll have to check that
 > > first).
 >
 > Sure but practically speaking such modifications do not make sense in
 > the real world (e.g. rename many header names at once). And the "excuse"
 > above has been the reason for continually postponing their removal. I'd
 > instead vote for warning on them in 2.0 and removing them very early in
 > 2.1. If someone has a compelling use case, we'll get some feedback thanks
 > to the warning and it will still be possible to figure how to implement
 > a replacement using http-request rules.


This would be very helpfully.

For example such a generic replacement could be like this?

http://cbonte.github.io/haproxy-dconv/1.9/configuration.html#4.2-reqrep

# replace "/static/" with "/" at the beginning of any request path.
 reqrep ^([^\ :]*)\ /static/(.*) \1\ /\2 # replace

http://cbonte.github.io/haproxy-dconv/1.9/configuration.html#4.2-http-request%20set-path


http-request set-path %[path,regsub(/static/(.*),\1,g)

> > What I wasn't sure about: The 'transparent' directive. It is deprecated in
 > > the docs, but it does not warn. When taking a look into the configuration
 > > parser it appears to set different flags compared to 'option transparent'.
 > > Can you please take a look at this and either add an appropriate warning or
 > > remove the deprecated note from the docs?
 >
 > This vaguely reminds me something indeed, I'll need to have a look at
 > this. We may even discover that one of them is bogus :-)
 >
 > Thanks,
 > Willy

Regards
 Aleks



Reply via email to