This drastic reduction in testHttpRange dependencies is made possible by
splitting HeaderTools code into several parts:
* Header-mangling code that pulled in many heavy dependencies but was
unused by testHttpRange code. This high-level code does not belong to
libhttp, so it was left in src/ (see HeaderMangling.cc).
* Simple header manipulation functions without heavy dependencies; some
used by testHttpRange code. This low-level code should eventually be
moved to libhttp, but it was left in HttpHeaderTools.cc for now
because libhttp itself is currently bloated with heavy dependencies --
linking with libhttp requires linking with or stubbing a lot of
code unrelated to testHttpRange.
* Definition of httpHeaderParseQuotedString() and a few other functions
declared in HttpHeader.h were moved to HttpHeader.cc to improve
declaration/definition/stubs affinity and avoid linking errors:
testHttpRange now depends on stub_HttpHeader.cc that has stubs for
these functions.
* httpHeaderMaskInit() and getStringPrefix() are only used by
HttpHeader.cc, so they were moved to HttpHeader.cc and made static.
Moved code was unchanged. A few comments were relocated to better match
Squid coding style. A few STUBs were added/adjusted as needed.
TODO: Check the remaining two tests that still include header mangling
code: testHttpRequest and testCacheManager.