One problem we currently have with upgrades is leaving the parser able
to avoid its bungled/unknown option message for directives which have
been fully removed or massively syntax altered.
We are able to handle this for flags and option syntax easily but the
parser has been particularly dense and strict on the directives (first
word of each line).
This patch updates the cf_* and cfgman code to allow a special directive
type "obsolete" which pumps old config lines off to a parse_obsolete()
function for handling without causing the directives to remain in the
publicly visible config documentation.
cf.data.pre has entries added for all the squid-2.6+ directives I could
find that were removed up to 3.HEAD
parse_obsolete(char*) is added with tests to catch and report the above
entries as obsolete while ignoring. Several of the directives have
additional explanation text matching the release notes to aid manual
upgrades.
One useful side-effect was the removal of some LOC: assert(). This
allows directives to be configured with no LOC: entry being identical to
a previously explicit "LOC: none".
Amos
-- Please be using Current Stable Squid 2.7.STABLE9 or 3.1.8 Beta testers wanted for 3.2.0.2
This archive was generated by hypermail 2.2.0 : Thu Sep 23 2010 - 12:00:11 MDT