=== modified file 'src/cache_manager.cc' --- src/cache_manager.cc 2011-06-10 19:08:00 +0000 +++ src/cache_manager.cc 2011-06-24 10:19:05 +0000 @@ -193,6 +193,14 @@ int len = strlen(url); Must(len > 0); t = sscanf(url, "cache_object://%[^/]/%[^@?]%n@%[^?]?%s", host, request, &pos, password, params); + if (t < 1) { + t = sscanf(url, "http://%[^/]/squid-internal-mgr/%[^?]%n?%s", host, request, &pos, params); + } + if (t < 1) { + t = sscanf(url, "https://%[^/]/squid-internal-mgr/%[^?]%n?%s", host, request, &pos, params); + } + debugs(16, 3, HERE << "HTTPS: t=" << t << ", host='" << host << "', request='" << request << "', pos=" << pos << + ", password='" << password << "', params='" << params << "'"); if (pos >0 && url[pos] == '?') { ++pos; === modified file 'src/cf.data.pre' --- src/cf.data.pre 2011-06-23 08:33:13 +0000 +++ src/cf.data.pre 2011-06-24 09:57:26 +0000 @@ -862,7 +862,7 @@ # # Recommended minimum configuration: # -acl manager proto cache_object +acl manager url_regex -i ^cache_object:// +i ^https?://[^/]+/squid-internal-mgr/ acl localhost src 127.0.0.1/32 ::1 acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1 === modified file 'src/forward.cc' --- src/forward.cc 2011-06-23 08:33:13 +0000 +++ src/forward.cc 2011-06-24 08:48:25 +0000 @@ -247,7 +247,7 @@ switch (request->protocol) { case AnyP::PROTO_INTERNAL: - internalStart(request, entry); + internalStart(clientConn, request, entry); return; case AnyP::PROTO_CACHE_OBJECT: === modified file 'src/internal.cc' --- src/internal.cc 2011-03-02 07:27:24 +0000 +++ src/internal.cc 2011-06-24 07:41:44 +0000 @@ -34,6 +34,8 @@ */ #include "squid.h" +#include "CacheManager.h" +#include "comm/Connection.h" #include "errorpage.h" #include "Store.h" #include "HttpRequest.h" @@ -48,11 +50,11 @@ * return HTTP_NOT_FOUND for others */ void -internalStart(HttpRequest * request, StoreEntry * entry) +internalStart(const Comm::ConnectionPointer &clientConn, HttpRequest * request, StoreEntry * entry) { ErrorState *err; const char *upath = request->urlpath.termedBuf(); - debugs(76, 3, "internalStart: " << request->client_addr << " requesting '" << upath << "'"); + debugs(76, 3, HERE << clientConn << " requesting '" << upath << "'"); if (0 == strcmp(upath, "/squid-internal-dynamic/netdb")) { netdbBinaryExchange(entry); @@ -69,6 +71,8 @@ entry->replaceHttpReply(reply); entry->append(msgbuf, strlen(msgbuf)); entry->complete(); + } else if (0 == strncmp(upath, "/squid-internal-mgr/", 20)) { + CacheManager::GetInstance()->Start(clientConn, request, entry); } else { debugObj(76, 1, "internalStart: unknown request:\n", request, (ObjPackMethod) & httpRequestPack); === modified file 'src/protos.h' --- src/protos.h 2011-06-23 08:31:56 +0000 +++ src/protos.h 2011-06-24 07:44:31 +0000 @@ -662,7 +662,7 @@ SQUIDCEXTERN void cacheDigestGuessStatsReport(const cd_guess_stats * stats, StoreEntry * sentry, const char *label); SQUIDCEXTERN void cacheDigestReport(CacheDigest * cd, const char *label, StoreEntry * e); -SQUIDCEXTERN void internalStart(HttpRequest *, StoreEntry *); +SQUIDCEXTERN void internalStart(const Comm::ConnectionPointer &clientConn, HttpRequest *, StoreEntry *); SQUIDCEXTERN int internalCheck(const char *urlpath); SQUIDCEXTERN int internalStaticCheck(const char *urlpath); SQUIDCEXTERN char *internalLocalUri(const char *dir, const char *name);