This rather large patch starts breakout apart the bidirectional
dependencies between the forwarding logic and the protocol
implementations. The current result is that the URN protocol is now
utterly invisible to all of the code except for the url parser which
dispatches based on finding a matching scheme at runtime.
The patch isn't ready to merge yet. To merge it three things need to
happen:
* Someone needs to confirm I haven't broken URN support - or document
how it should be routinely tested so I can do so.
* We should discuss what the default for urn support should be - I vote
for off.
* I need to put a performance benchmark in place for the new scheme
lookup, its likely very slow at the moment (one function call per url
per scheme) - but the interface should be entirely compatible with the
trie based mapper I put together a ways back, or even just a vanilla STL
map - if we were to start using the stl.
I'd love feedback on this. Its a fairly significant step towards making
the core of squid unaware of the specific modules to forward via, and
that will make the connections between modules much tighter and easily
understandable -> easier to test, easier to fix, and easier to tune for
speed.
Cheers,
Rob
-- GPG key available at: <http://www.robertcollins.net/keys.txt>.
This archive was generated by hypermail pre-2.1.9 : Fri Sep 01 2006 - 12:00:03 MDT