From: rousskov <> Date: Sun, 5 Apr 1998 09:34:58 +0000 (+0000) Subject: - added routines to create "internal" urls X-Git-Tag: SQUID_3_0_PRE1~3624 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b89dd01a6e0a37b189bfb9c38e5996d275c5eb1c;p=thirdparty%2Fsquid.git - added routines to create "internal" urls - replaced snprintf() calls that created "internal" urls - host name is converted to lower case for all local internal urls now, not just icons --- diff --git a/src/mime.cc b/src/mime.cc index d91e0e4968..6679239f06 100644 --- a/src/mime.cc +++ b/src/mime.cc @@ -1,6 +1,6 @@ /* - * $Id: mime.cc,v 1.59 1998/04/02 04:45:06 rousskov Exp $ + * $Id: mime.cc,v 1.60 1998/04/05 02:34:58 rousskov Exp $ * * DEBUG: section 25 MIME Parsing * AUTHOR: Harvest Derived @@ -331,17 +331,9 @@ char * mimeGetIconURL(const char *fn) { char *icon = mimeGetIcon(fn); - static char iconurl[256]; - static char host[SQUIDHOSTNAMELEN]; if (icon == NULL) return NULL; - xstrncpy(host, getMyHostname(), SQUIDHOSTNAMELEN); - Tolower(host); - snprintf(iconurl, 256, "http://%s:%d/squid-internal/icons/%s", - host, - Config.Port.http->i, - icon); - return iconurl; + return urlInternal("icons", icon); } char * diff --git a/src/protos.h b/src/protos.h index b72f2024ef..bcf287335b 100644 --- a/src/protos.h +++ b/src/protos.h @@ -499,6 +499,7 @@ extern int netdbHops(struct in_addr); extern void netdbFreeMemory(void); extern int netdbHostHops(const char *host); extern int netdbHostRtt(const char *host); +extern int netdbHostPeerRtt(const char *host, peer * peer); extern void netdbUpdatePeer(request_t *, peer * e, int rtt, int hops); extern void netdbDeleteAddrNetwork(struct in_addr addr); extern int netdbHostPeerRtt(const char *host, peer * peer); @@ -511,6 +512,10 @@ extern void peerSelect(request_t *, StoreEntry *, PSC *, PSC *, void *data); extern peer *peerGetSomeParent(request_t *, hier_code *); extern void peerSelectInit(void); +/* peer_digest.c */ +extern void peerDigestValidate(peer *p); +extern void peerDigestRequest(peer *p); + extern void protoDispatch(int, StoreEntry *, request_t *); extern int protoUnregister(StoreEntry *, request_t *); @@ -821,6 +826,8 @@ extern method_t urlParseMethod(const char *); extern void urlInitialize(void); extern request_t *urlParse(method_t, char *); extern char *urlCanonical(const request_t *, char *); +extern char *urlRInternal(const char *host, int port, const char *dir, const char *name); +extern char *urlInternal(const char *dir, const char *name); extern request_t *requestLink(request_t *); extern void requestUnlink(request_t *); extern int matchDomainName(const char *d, const char *h); diff --git a/src/url.cc b/src/url.cc index a29c17cbe1..4d5c09a9d8 100644 --- a/src/url.cc +++ b/src/url.cc @@ -1,6 +1,6 @@ /* - * $Id: url.cc,v 1.84 1998/03/31 05:37:53 wessels Exp $ + * $Id: url.cc,v 1.85 1998/04/05 02:34:59 rousskov Exp $ * * DEBUG: section 23 URL Parsing * AUTHOR: Duane Wessels @@ -369,6 +369,29 @@ urlCanonicalClean(const request_t * request) return buf; } +/* makes internal url with a given host and port (remote internal url) */ +char * +urlRInternal(const char *host, int port, const char *dir, const char *name) +{ + LOCAL_ARRAY(char, buf, MAX_URL); + assert(host && port && name); + if (!dir || !*dir) + snprintf(buf, MAX_URL, "http://%s:%d/%s", host, port, name); + else + snprintf(buf, MAX_URL, "http://%s:%d/%s/%s", host, port, dir, name); + return buf; +} + +/* makes internal url with local host and port */ +char * +urlInternal(const char *dir, const char *name) +{ + static char host[SQUIDHOSTNAMELEN]; + xstrncpy(host, getMyHostname(), SQUIDHOSTNAMELEN); + Tolower(host); + return urlRInternal(host, Config.Port.http->i, dir, name); +} + request_t * requestLink(request_t * request) {