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>.
signature.asc
Description: This is a digitally signed message part
