]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Handle "squid-internal-static" URLs for any host
authorwessels <>
Fri, 22 May 1998 05:14:05 +0000 (05:14 +0000)
committerwessels <>
Fri, 22 May 1998 05:14:05 +0000 (05:14 +0000)
src/client_side.cc
src/internal.cc
src/protos.h

index 7cd61f0e5298677b61b713671f7f8b94798562d7..3a014c8421c16d50f7dda9cbd59978341d874a97 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: client_side.cc,v 1.311 1998/05/21 04:01:02 wessels Exp $
+ * $Id: client_side.cc,v 1.312 1998/05/21 23:14:05 wessels Exp $
  *
  * DEBUG: section 33    Client-side Routines
  * AUTHOR: Duane Wessels
@@ -1986,11 +1986,18 @@ clientReadRequest(int fd, void *data)
                        http->uri, prefix);
                /* continue anyway? */
            }
-           if (!http->flags.internal)
-               if (internalCheck(strBuf(request->urlpath)))
-                   if (0 == strcasecmp(request->host, getMyHostname()))
+           if (!http->flags.internal) {
+               if (internalCheck(strBuf(request->urlpath))) {
+                   if (0 == strcasecmp(request->host, getMyHostname())) {
                        if (request->port == Config.Port.http->i)
                            http->flags.internal = 1;
+                   } else if (internalStaticCheck(strBuf(request->urlpath))) {
+                           xstrncpy(request->host, getMyHostname(), SQUIDHOSTNAMELEN);
+                           request->port = Config.Port.http->i;
+                           http->flags.internal = 1;
+                   }
+               }
+           }
            safe_free(http->log_uri);
            http->log_uri = xstrdup(urlCanonicalClean(request));
            request->client_addr = conn->peer.sin_addr;
index 435e2f2f23356d7da0c29fe6ece0f962809e3156..9031662cc40c91e9821030223d241b49de1af941 100644 (file)
@@ -19,6 +19,12 @@ internalCheck(const char *urlpath)
        return (0 == strncmp(urlpath, "/squid-internal-", 16));
 }
 
+int
+internalStaticCheck(const char *urlpath)
+{
+       return (0 == strncmp(urlpath, "/squid-internal-static", 22));
+}
+
 /*
  * makes internal url with a given host and port (remote internal url)
  */
index 8e363af05d6142308363e3e2fd5a8e0e31763bec..7d3b9a0a035751a1b78376f4c163d9350b3d2cfe 100644 (file)
@@ -964,6 +964,7 @@ extern void cacheDigestReport(CacheDigest * cd, const char *label, StoreEntry *
 
 extern void internalStart(request_t *, StoreEntry *);
 extern int internalCheck(const char *urlpath);
+extern int internalStaticCheck(const char *urlpath);
 extern char *internalLocalUri(const char *dir, const char *name);
 extern char *internalRemoteUri(const char *, u_short, const char *, const char *);