27.10.2017 21:17, Antony Stone пишет: > On Friday 27 October 2017 at 17:06:01, Yuri wrote: > >> 27.10.2017 20:55, Alex Rousskov пишет: >>> When a regular expression is using extended features, the basic regular >>> expression compiler often (or even always?!) does not fail because it >>> views the extended features as ordinary plain characters. Thus, Squid >>> cannot tell that something went wrong. >>>> $ echo "foobar" | grep --basic-regexp 'foo|bar' >>>> $ echo "foobar" | grep --extended-regexp 'foo|bar' >>>> foobar >>> As you can see, the basic compiler is silent about the "|" character >>> that it does not support. Here is a similar example where a malformed >>> >>> extended regular expression is silently accepted by the basic compiler: >>>> $ echo "foobar" | grep --basic-regexp 'foo(bar' >>>> $ echo "foobar" | grep --extended-regexp 'foo(bar' >>>> grep: Unmatched ( or \( >> I would like either a clear documentation > That sounds entirely reasonable - a statement something like "Squid is > guaranteed to use basic POSIX grammar, but extended grammar may be available > on different systems; the sysadmin should check"? > >> or some tool for checking whether the regular expression is correct from the >> point of view of the current library used by Squid or not. > What does "correct" mean? "correct" mean "this will correctly works in Squid, not silently ignored". This is simple and obvious, isn't it? > > As Alex's examples above demonstrate, both are "correct" regexes from the > basic POSIX point of view; they just don't do what the admin might have wanted > or expected. > > How could Squid know whether you expect ( in a regex to be a literal character > or a meta-character? I expect following known documented behaviour. And not a casket with a surprise, which should be investigated in each specific configuration. Adherence to standards provides interoperability - a familiar word? > >> The existing opportunities seem completely unsatisfactory. > Nothing documents that Squid uses other than basic POSIX grammar, so why would > you assume that it does? Antonio, the problem is that this too is not documented. Maybe someone will work hard to clearly describe the behavior in the documentation? Because I did not find, as I said, a direct mention of the default grammar. Do I clearly express my thoughts? > > > Antony. > I asked a simple question. And wanted a simple answer. And not reasoning, what can be, and what can not. Interoperability is a simple thing. -- ************************** * C++: Bug to the future * **************************
Attachment:
0x3E3743A7.asc
Description: application/pgp-keys
Attachment:
signature.asc
Description: OpenPGP digital signature
_______________________________________________ squid-users mailing list squid-users@xxxxxxxxxxxxxxxxxxxxx http://lists.squid-cache.org/listinfo/squid-users