=== 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);


