From: wessels <> Date: Fri, 22 May 1998 05:14:05 +0000 (+0000) Subject: Handle "squid-internal-static" URLs for any host X-Git-Tag: SQUID_3_0_PRE1~3286 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ba26bca40436a715507d01faee9e32a2a222dd9a;p=thirdparty%2Fsquid.git Handle "squid-internal-static" URLs for any host --- diff --git a/src/client_side.cc b/src/client_side.cc index 7cd61f0e52..3a014c8421 100644 --- a/src/client_side.cc +++ b/src/client_side.cc @@ -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; diff --git a/src/internal.cc b/src/internal.cc index 435e2f2f23..9031662cc4 100644 --- a/src/internal.cc +++ b/src/internal.cc @@ -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) */ diff --git a/src/protos.h b/src/protos.h index 8e363af05d..7d3b9a0a03 100644 --- a/src/protos.h +++ b/src/protos.h @@ -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 *);