From: Alex Rousskov Date: Wed, 9 Mar 2011 19:02:12 +0000 (-0700) Subject: Merged from parent (trunk 11270, circa 3.2.0.5+) X-Git-Tag: take06~27^2~108^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=555aedbf87248fc570f3a645124bcb0150bddb03;p=thirdparty%2Fsquid.git Merged from parent (trunk 11270, circa 3.2.0.5+) --- 555aedbf87248fc570f3a645124bcb0150bddb03 diff --cc src/adaptation/ecap/Host.cc index 6a137a4e62,1ed158730f..629ae1d230 --- a/src/adaptation/ecap/Host.cc +++ b/src/adaptation/ecap/Host.cc @@@ -18,7 -18,6 +18,10 @@@ const libecap::Name Adaptation::Ecap::p #if USE_HTCP const libecap::Name Adaptation::Ecap::protocolHtcp("Htcp", libecap::Name::NextId()); #endif ++const libecap::Name Adaptation::Ecap::protocolIcy("ICY", libecap::Name::NextId()); ++const libecap::Name Adaptation::Ecap::protocolUnknown("_unknown_", libecap::Name::NextId()); ++ +const libecap::Name Adaptation::Ecap::metaBypassable("bypassable", libecap::Name::NextId()); /// the host application (i.e., Squid) wrapper registered with libecap static libecap::shared_ptr TheHost; @@@ -28,29 -27,22 +31,31 @@@ Adaptation::Ecap::Host::Host( // assign our host-specific IDs to well-known names // this code can run only once + libecap::headerTransferEncoding.assignHostId(HDR_TRANSFER_ENCODING); libecap::headerReferer.assignHostId(HDR_REFERER); libecap::headerContentLength.assignHostId(HDR_CONTENT_LENGTH); + libecap::headerVia.assignHostId(HDR_VIA); + // TODO: libecap::headerXClientIp.assignHostId(HDR_X_CLIENT_IP); + // TODO: libecap::headerXServerIp.assignHostId(HDR_X_SERVER_IP); - libecap::protocolHttp.assignHostId(PROTO_HTTP); - libecap::protocolHttps.assignHostId(PROTO_HTTPS); - libecap::protocolFtp.assignHostId(PROTO_FTP); - libecap::protocolGopher.assignHostId(PROTO_GOPHER); - libecap::protocolWais.assignHostId(PROTO_WAIS); - libecap::protocolUrn.assignHostId(PROTO_URN); - libecap::protocolWhois.assignHostId(PROTO_WHOIS); - protocolInternal.assignHostId(PROTO_INTERNAL); - protocolCacheObj.assignHostId(PROTO_CACHEOBJ); - protocolIcp.assignHostId(PROTO_ICP); + libecap::protocolHttp.assignHostId(AnyP::PROTO_HTTP); + libecap::protocolHttps.assignHostId(AnyP::PROTO_HTTPS); + libecap::protocolFtp.assignHostId(AnyP::PROTO_FTP); + libecap::protocolGopher.assignHostId(AnyP::PROTO_GOPHER); + libecap::protocolWais.assignHostId(AnyP::PROTO_WAIS); + libecap::protocolUrn.assignHostId(AnyP::PROTO_URN); + libecap::protocolWhois.assignHostId(AnyP::PROTO_WHOIS); + protocolInternal.assignHostId(AnyP::PROTO_INTERNAL); + protocolCacheObj.assignHostId(AnyP::PROTO_CACHE_OBJECT); + protocolIcp.assignHostId(AnyP::PROTO_ICP); #if USE_HTCP - protocolHtcp.assignHostId(PROTO_HTCP); + protocolHtcp.assignHostId(AnyP::PROTO_HTCP); #endif ++ protocolIcy.assignHostId(AnyP::PROTO_ICY); ++ protocolUnknown.assignHostId(AnyP::PROTO_UNKNOWN); + + // allows adapter to safely ignore this in adapter::Service::configure() + metaBypassable.assignHostId(1); } std::string diff --cc src/adaptation/ecap/Host.h index 846a707aae,6ec696b907..a94e12d1aa --- a/src/adaptation/ecap/Host.h +++ b/src/adaptation/ecap/Host.h @@@ -44,6 -44,6 +44,8 @@@ private extern const libecap::Name protocolInternal; extern const libecap::Name protocolCacheObj; extern const libecap::Name protocolIcp; ++extern const libecap::Name protocolIcy; ++extern const libecap::Name protocolUnknown; #if USE_HTCP extern const libecap::Name protocolHtcp; #endif diff --cc src/adaptation/ecap/MessageRep.cc index eda4f17f60,f82b1463ff..b5fea11d4e --- a/src/adaptation/ecap/MessageRep.cc +++ b/src/adaptation/ecap/MessageRep.cc @@@ -136,38 -124,38 +136,40 @@@ Adaptation::Ecap::FirstLineRep::protoco { // TODO: optimize? switch (theMessage.protocol) { - case PROTO_HTTP: + case AnyP::PROTO_HTTP: return libecap::protocolHttp; - case PROTO_HTTPS: + case AnyP::PROTO_HTTPS: return libecap::protocolHttps; - case PROTO_FTP: + case AnyP::PROTO_FTP: return libecap::protocolFtp; - case PROTO_GOPHER: + case AnyP::PROTO_GOPHER: return libecap::protocolGopher; - case PROTO_WAIS: + case AnyP::PROTO_WAIS: return libecap::protocolWais; - case PROTO_WHOIS: + case AnyP::PROTO_WHOIS: return libecap::protocolWhois; - case PROTO_URN: + case AnyP::PROTO_URN: return libecap::protocolUrn; - case PROTO_ICP: + case AnyP::PROTO_ICP: return protocolIcp; #if USE_HTCP - case PROTO_HTCP: + case AnyP::PROTO_HTCP: return protocolHtcp; #endif - case PROTO_CACHEOBJ: + case AnyP::PROTO_CACHE_OBJECT: return protocolCacheObj; - case PROTO_INTERNAL: + case AnyP::PROTO_INTERNAL: return protocolInternal; - case PROTO_ICY: - return Name(); - case PROTO_NONE: + case AnyP::PROTO_ICY: - return Name(); ++ return protocolIcy; ++ case AnyP::PROTO_UNKNOWN: ++ return protocolUnknown; // until we remember the protocol image + case AnyP::PROTO_NONE: return Name(); - case PROTO_MAX: + case AnyP::PROTO_MAX: break; // should not happen - // no default to catch PROTO_ additions + // no default to catch AnyP::PROTO_ additions } Must(false); // not reached return Name(); @@@ -180,12 -168,12 +182,12 @@@ Adaptation::Ecap::FirstLineRep::protoco theMessage.protocol = TranslateProtocolId(p); } --protocol_t ++AnyP::ProtocolType Adaptation::Ecap::FirstLineRep::TranslateProtocolId(const Name &name) { if (name.assignedHostId()) -- return static_cast(name.hostId()); - return PROTO_NONE; // no PROTO_OTHER - return AnyP::PROTO_NONE; // no AnyP::PROTO_OTHER ++ return static_cast(name.hostId()); ++ return AnyP::PROTO_UNKNOWN; } diff --cc src/adaptation/ecap/MessageRep.h index b5a7d425ea,6b753d7c96..328333776f --- a/src/adaptation/ecap/MessageRep.h +++ b/src/adaptation/ecap/MessageRep.h @@@ -10,6 -10,6 +10,7 @@@ #include "BodyPipe.h" #include "adaptation/forward.h" #include "adaptation/Message.h" ++#include "anyp/ProtocolType.h" #include #include #include @@@ -70,7 -68,7 +71,7 @@@ public void protocol(const Name &aProtocol); protected: -- static protocol_t TranslateProtocolId(const Name &name); ++ static AnyP::ProtocolType TranslateProtocolId(const Name &name); private: HttpMsg &theMessage; // the message which first line is being translated