From: wessels <> Date: Wed, 4 Sep 1996 01:23:59 +0000 (+0000) Subject: squid-1.0.12 merge X-Git-Tag: SQUID_3_0_PRE1~5858 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1c481e007b7e5ccfe40228bd35b87754982a67ed;p=thirdparty%2Fsquid.git squid-1.0.12 merge --- diff --git a/ChangeLog b/ChangeLog index 026cdf7f79..7c2464bb45 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,5 @@ +Changes to squid-1.1.alpha16: + - Fixed ipcache TTL bug from new ipcache_parsebuffer(). - Copied recent ipcache.c changes to fqdncache.c - Copied icpHandleIcpV2() fix to icpHandleIcpV3(). @@ -188,6 +190,17 @@ Changes to squid-1.1.alpha2: ============================================================================== +Changes to squid-1.0.12 (September 3, 1996): + + - Fixed urlCheckRequest() to allow CONNECT/SSL requests. + - Change default socket send/receive buffers to 16k (in + configure) instead of 8k, mainly for Solaris. + - Fixed urlParse() to remove trailing dots from hostnames. + - Added 'ttl_pattern/i' config tag for case-insensitive + regular expressions. + - Fixed swapin_complete_handler FMW bug in storeSwapInHandle(). + - Removed 'Invalid object detected' trap in storeValidToSend(). + Changes to squid-1.0.11 (August 30, 1996): - Fixed ENTRY_DISPATCHED bug. Now set ENTRY_DISPATCHED diff --git a/configure b/configure index d500f78532..15ad4acd8a 100755 --- a/configure +++ b/configure @@ -517,7 +517,7 @@ fi -# From configure.in Revision: 1.30 +# From configure.in Revision: 1.31 ac_aux_dir= for ac_dir in aux $srcdir/aux; do if test -f $ac_dir/install-sh; then @@ -2309,7 +2309,7 @@ EOF echo $ac_n "checking Default UDP send buffer size""... $ac_c" 1>&6 if test "$cross_compiling" = yes; then - SQUID_UDP_SO_SNDBUF=8192 + SQUID_UDP_SO_SNDBUF=16384 else cat > conftest.$ac_ext </dev/null; then SQUID_UDP_SO_SNDBUF=`cat conftestval` else - SQUID_UDP_SO_SNDBUF=8192 + SQUID_UDP_SO_SNDBUF=16384 fi fi rm -fr conftest* @@ -2345,7 +2345,7 @@ EOF echo $ac_n "checking Default UDP receive buffer size""... $ac_c" 1>&6 if test "$cross_compiling" = yes; then - SQUID_UDP_SO_RCVBUF=8192 + SQUID_UDP_SO_RCVBUF=16384 else cat > conftest.$ac_ext </dev/null; then SQUID_UDP_SO_RCVBUF=`cat conftestval` else - SQUID_UDP_SO_RCVBUF=8192 + SQUID_UDP_SO_RCVBUF=16384 fi fi rm -fr conftest* @@ -2381,7 +2381,7 @@ EOF echo $ac_n "checking Default TCP send buffer size""... $ac_c" 1>&6 if test "$cross_compiling" = yes; then - SQUID_TCP_SO_SNDBUF=8192 + SQUID_TCP_SO_SNDBUF=16384 else cat > conftest.$ac_ext </dev/null; then SQUID_TCP_SO_SNDBUF=`cat conftestval` else - SQUID_TCP_SO_SNDBUF=8192 + SQUID_TCP_SO_SNDBUF=16384 fi fi rm -fr conftest* @@ -2417,7 +2417,7 @@ EOF echo $ac_n "checking Default TCP receive buffer size""... $ac_c" 1>&6 if test "$cross_compiling" = yes; then - SQUID_TCP_SO_RCVBUF=8192 + SQUID_TCP_SO_RCVBUF=16384 else cat > conftest.$ac_ext </dev/null; then SQUID_TCP_SO_RCVBUF=`cat conftestval` else - SQUID_TCP_SO_RCVBUF=8192 + SQUID_TCP_SO_RCVBUF=16384 fi fi rm -fr conftest* diff --git a/configure.in b/configure.in index 9e284b53b5..e02ee6784f 100644 --- a/configure.in +++ b/configure.in @@ -3,13 +3,13 @@ dnl Configuration input file for Squid dnl dnl Duane Wessels, wessels@nlanr.net, February 1996 (autoconf v2.9) dnl -dnl $Id: configure.in,v 1.31 1996/08/31 06:41:53 wessels Exp $ +dnl $Id: configure.in,v 1.32 1996/09/03 19:24:00 wessels Exp $ dnl dnl dnl AC_INIT(src/main.c) AC_CONFIG_HEADER(include/autoconf.h) -AC_REVISION($Revision: 1.31 $)dnl +AC_REVISION($Revision: 1.32 $)dnl AC_PREFIX_DEFAULT(/usr/local/squid) AC_CONFIG_AUX_DIR(aux) @@ -366,8 +366,8 @@ main () } ], SQUID_UDP_SO_SNDBUF=`cat conftestval`, -SQUID_UDP_SO_SNDBUF=8192, -SQUID_UDP_SO_SNDBUF=8192) +SQUID_UDP_SO_SNDBUF=16384, +SQUID_UDP_SO_SNDBUF=16384) AC_MSG_RESULT($SQUID_UDP_SO_SNDBUF) AC_DEFINE_UNQUOTED(SQUID_UDP_SO_SNDBUF, $SQUID_UDP_SO_SNDBUF) @@ -387,8 +387,8 @@ main () } ], SQUID_UDP_SO_RCVBUF=`cat conftestval`, -SQUID_UDP_SO_RCVBUF=8192, -SQUID_UDP_SO_RCVBUF=8192) +SQUID_UDP_SO_RCVBUF=16384, +SQUID_UDP_SO_RCVBUF=16384) AC_MSG_RESULT($SQUID_UDP_SO_RCVBUF) AC_DEFINE_UNQUOTED(SQUID_UDP_SO_RCVBUF, $SQUID_UDP_SO_RCVBUF) @@ -408,8 +408,8 @@ main () } ], SQUID_TCP_SO_SNDBUF=`cat conftestval`, -SQUID_TCP_SO_SNDBUF=8192, -SQUID_TCP_SO_SNDBUF=8192) +SQUID_TCP_SO_SNDBUF=16384, +SQUID_TCP_SO_SNDBUF=16384) AC_MSG_RESULT($SQUID_TCP_SO_SNDBUF) AC_DEFINE_UNQUOTED(SQUID_TCP_SO_SNDBUF, $SQUID_TCP_SO_SNDBUF) @@ -429,8 +429,8 @@ main () } ], SQUID_TCP_SO_RCVBUF=`cat conftestval`, -SQUID_TCP_SO_RCVBUF=8192, -SQUID_TCP_SO_RCVBUF=8192) +SQUID_TCP_SO_RCVBUF=16384, +SQUID_TCP_SO_RCVBUF=16384) AC_MSG_RESULT($SQUID_TCP_SO_RCVBUF) AC_DEFINE_UNQUOTED(SQUID_TCP_SO_RCVBUF, $SQUID_TCP_SO_RCVBUF) diff --git a/src/cache_cf.cc b/src/cache_cf.cc index e67144702c..d849b50819 100644 --- a/src/cache_cf.cc +++ b/src/cache_cf.cc @@ -1,5 +1,5 @@ /* - * $Id: cache_cf.cc,v 1.80 1996/08/29 17:57:37 wessels Exp $ + * $Id: cache_cf.cc,v 1.81 1996/09/03 19:24:01 wessels Exp $ * * DEBUG: section 3 Configuration File Parsing * AUTHOR: Harvest Derived @@ -204,13 +204,58 @@ char w_space[] = " \t\n"; char config_input_line[BUFSIZ]; int config_lineno = 0; -static void configSetFactoryDefaults _PARAMS((void)); -static void configFreeMemory _PARAMS((void)); -static void configDoConfigure _PARAMS((void)); static char *safe_xstrdup _PARAMS((char *p)); static void parseOnOff _PARAMS((int *)); static void parseIntegerValue _PARAMS((int *)); static char fatal_str[BUFSIZ]; +static void configDoConfigure _PARAMS((void)); +static void configFreeMemory _PARAMS((void)); +static void configSetFactoryDefaults _PARAMS((void)); +static void parseAccessLogLine _PARAMS((void)); +static void parseAddressLine _PARAMS((struct in_addr *)); +static void parseAnnounceToLine _PARAMS((void)); +static void parseAppendDomainLine _PARAMS((void)); +static void parseCacheAnnounceLine _PARAMS((void)); +static void parseCacheHostLine _PARAMS((void)); +static void parseCleanRateLine _PARAMS((void)); +static void parseDebugOptionsLine _PARAMS((void)); +static void parseDirLine _PARAMS((void)); +static void parseDnsProgramLine _PARAMS((void)); +static void parseDnsTestnameLine _PARAMS((void)); +static void parseEffectiveUserLine _PARAMS((void)); +static void parseErrHtmlLine _PARAMS((void)); +static void parseFtpLine _PARAMS((void)); +static void parseFtpOptionsLine _PARAMS((void)); +static void parseFtpProgramLine _PARAMS((void)); +static void parseFtpUserLine _PARAMS((void)); +static void parseGopherLine _PARAMS((void)); +static void parseHierarchyStoplistLine _PARAMS((void)); +static void parseHostAclLine _PARAMS((void)); +static void parseHostDomainLine _PARAMS((void)); +static void parseHotVmFactorLine _PARAMS((void)); +static void parseHttpLine _PARAMS((void)); +static void parseHttpPortLine _PARAMS((void)); +static void parseHttpdAccelLine _PARAMS((void)); +static void parseIPLine _PARAMS((ip_acl ** list)); +static void parseIcpPortLine _PARAMS((void)); +static void parseInsideFirewallLine _PARAMS((void)); +static void parseLifetimeLine _PARAMS((void)); +static void parseLocalDomainFile _PARAMS((char *fname)); +static void parseLocalDomainLine _PARAMS((void)); +static void parseLogLine _PARAMS((void)); +static void parseMemLine _PARAMS((void)); +static void parseMgrLine _PARAMS((void)); +static void parseNegativeDnsLine _PARAMS((void)); +static void parseNegativeLine _PARAMS((void)); +static void parsePidFilenameLine _PARAMS((void)); +static void parsePositiveDnsLine _PARAMS((void)); +static void parseReadTimeoutLine _PARAMS((void)); +static void parseRequestSizeLine _PARAMS((void)); +static void parseStoreLogLine _PARAMS((void)); +static void parseSwapLine _PARAMS((void)); +static void parseTTLPattern _PARAMS((int icase, int force)); +static void parseVisibleHostnameLine _PARAMS((void)); +static void parseWAISRelayLine _PARAMS((void)); void self_destruct() { @@ -528,7 +573,9 @@ static void parseFtpLine() Config.Ftp.defaultTtl = i * 60; } -static void parseTTLPattern() +static void parseTTLPattern(icase, force) + int icase; + int force; { char *token; char *pattern; @@ -557,31 +604,7 @@ static void parseTTLPattern() age_max = (time_t) (i * 60); /* convert minutes to seconds */ } } - ttlAddToList(pattern, abs_ttl, pct_age, age_max); - - safe_free(pattern); -} - -static void parseTTLForcePattern() -{ - char *token; - char *pattern; - time_t abs_ttl = 0; - time_t age_max = Config.ageMaxDefault; - int i; - - token = strtok(NULL, w_space); /* token: regex pattern */ - if (token == NULL) - self_destruct(); - pattern = xstrdup(token); - - GetInteger(i); /* token: abs_ttl */ - abs_ttl = (time_t) (i * 60); /* convert minutes to seconds */ - - GetInteger(i); - age_max = (time_t) (i * 60); /* convert minutes to seconds */ - ttlAddToForceList(pattern, abs_ttl, age_max); - + ttlAddToList(pattern, icase, force, abs_ttl, pct_age, age_max); safe_free(pattern); } @@ -1177,10 +1200,13 @@ int parseConfigFile(file_name) parseFtpLine(); else if (!strcmp(token, "ttl_pattern")) - parseTTLPattern(); - + parseTTLPattern(0, 0); + else if (!strcmp(token, "ttl_pattern/i")) + parseTTLPattern(1, 0); else if (!strcmp(token, "ttl_force_pattern")) - parseTTLForcePattern(); + parseTTLPattern(0, 1); + else if (!strcmp(token, "ttl_force_pattern/i")) + parseTTLPattern(1, 1); else if (!strcmp(token, "quick_abort")) parseQuickAbort(); diff --git a/src/ftp.cc b/src/ftp.cc index a6e874164e..ac6d6c645e 100644 --- a/src/ftp.cc +++ b/src/ftp.cc @@ -1,6 +1,6 @@ /* - * $Id: ftp.cc,v 1.51 1996/08/30 22:39:08 wessels Exp $ + * $Id: ftp.cc,v 1.52 1996/09/03 19:24:02 wessels Exp $ * * DEBUG: section 9 File Transfer Protocol (FTP) * AUTHOR: Harvest Derived @@ -253,7 +253,7 @@ static void ftpProcessReplyHeader(data, buf, size) case 410: /* Gone */ /* These can be cached for a long time, make the key public */ ttlSet(entry); - if (BIT_TEST(entry->flag, CACHABLE)) + if (BIT_TEST(entry->flag, ENTRY_CACHABLE)) storeSetPublicKey(entry); break; case 302: /* Moved Temporarily */ @@ -263,13 +263,13 @@ static void ftpProcessReplyHeader(data, buf, size) /* These should never be cached at all */ storeSetPrivateKey(entry); storeExpireNow(entry); - BIT_RESET(entry->flag, CACHABLE); + BIT_RESET(entry->flag, ENTRY_CACHABLE); storeReleaseRequest(entry); break; default: /* These can be negative cached, make key public */ entry->expires = squid_curtime + Config.negativeTtl; - if (BIT_TEST(entry->flag, CACHABLE)) + if (BIT_TEST(entry->flag, ENTRY_CACHABLE)) storeSetPublicKey(entry); break; } @@ -339,7 +339,7 @@ int ftpReadReply(fd, data) /* note there is no ftpReadReplyTimeout. Timeouts are handled * by `ftpget'. */ } else { - BIT_RESET(entry->flag, CACHABLE); + BIT_RESET(entry->flag, ENTRY_CACHABLE); storeReleaseRequest(entry); squid_error_entry(entry, ERR_READ_ERROR, xstrerror()); comm_close(fd); @@ -357,7 +357,7 @@ int ftpReadReply(fd, data) * never gets to disk. */ debug(9, 1, "ftpReadReply: Purging '%s'\n", entry->url); entry->expires = squid_curtime + Config.negativeTtl; - BIT_RESET(entry->flag, CACHABLE); + BIT_RESET(entry->flag, ENTRY_CACHABLE); storeReleaseRequest(entry); } else if (!(entry->flag & DELETE_BEHIND)) { ttlSet(entry); diff --git a/src/gopher.cc b/src/gopher.cc index fef1b7acb1..e3c9ccc148 100644 --- a/src/gopher.cc +++ b/src/gopher.cc @@ -1,5 +1,5 @@ /* - * $Id: gopher.cc,v 1.40 1996/08/30 23:23:31 wessels Exp $ + * $Id: gopher.cc,v 1.41 1996/09/03 19:24:02 wessels Exp $ * * DEBUG: section 10 Gopher * AUTHOR: Harvest Derived @@ -755,7 +755,7 @@ int gopherReadReply(fd, data) comm_set_select_handler_plus_timeout(fd, COMM_SELECT_TIMEOUT, (PF) gopherReadReplyTimeout, (void *) data, Config.readTimeout); } else { - BIT_RESET(entry->flag, CACHABLE); + BIT_RESET(entry->flag, ENTRY_CACHABLE); storeReleaseRequest(entry); squid_error_entry(entry, ERR_READ_ERROR, xstrerror()); comm_close(fd); @@ -933,7 +933,7 @@ void gopherSendRequest(fd, data) gopherSendComplete, (void *) data, put_free_4k_page); - if (BIT_TEST(data->entry->flag, CACHABLE)) + if (BIT_TEST(data->entry->flag, ENTRY_CACHABLE)) storeSetPublicKey(data->entry); /* Make it public */ } diff --git a/src/http.cc b/src/http.cc index dd6bb60f21..e901777092 100644 --- a/src/http.cc +++ b/src/http.cc @@ -1,5 +1,5 @@ /* - * $Id: http.cc,v 1.69 1996/08/26 19:57:05 wessels Exp $ + * $Id: http.cc,v 1.70 1996/09/03 19:24:03 wessels Exp $ * * DEBUG: section 11 Hypertext Transfer Protocol (HTTP) * AUTHOR: Harvest Derived @@ -189,7 +189,7 @@ static void httpMakePublic(entry) StoreEntry *entry; { ttlSet(entry); - if (BIT_TEST(entry->flag, CACHABLE)) + if (BIT_TEST(entry->flag, ENTRY_CACHABLE)) storeSetPublicKey(entry); } @@ -199,7 +199,7 @@ static void httpMakePrivate(entry) { storeSetPrivateKey(entry); storeExpireNow(entry); - BIT_RESET(entry->flag, CACHABLE); + BIT_RESET(entry->flag, ENTRY_CACHABLE); storeReleaseRequest(entry); /* delete object when not used */ } @@ -208,7 +208,7 @@ static void httpCacheNegatively(entry) StoreEntry *entry; { entry->expires = squid_curtime + Config.negativeTtl; - if (BIT_TEST(entry->flag, CACHABLE)) + if (BIT_TEST(entry->flag, ENTRY_CACHABLE)) storeSetPublicKey(entry); /* XXX: mark object "not to store on disk"? */ } @@ -269,6 +269,13 @@ void httpParseHeaders(buf, reply) } t = strtok(NULL, "\n"); } +#if LOG_TIMESTAMPS + fprintf(timestamp_log, "T %9d D %9d L %9d E %9d\n", + squid_curtime, + parse_rfc850(reply->date), + parse_rfc850(reply->last_modified), + parse_rfc850(reply->expires)); +#endif /* LOG_TIMESTAMPS */ safe_free(headers); } @@ -456,7 +463,7 @@ static void httpReadReply(fd, httpState) comm_set_select_handler_plus_timeout(fd, COMM_SELECT_TIMEOUT, (PF) httpReadReplyTimeout, (void *) httpState, Config.readTimeout); } else { - BIT_RESET(entry->flag, CACHABLE); + BIT_RESET(entry->flag, ENTRY_CACHABLE); storeReleaseRequest(entry); squid_error_entry(entry, ERR_READ_ERROR, xstrerror()); comm_close(fd); diff --git a/src/squid.h b/src/squid.h index de214fc5b0..6993955260 100644 --- a/src/squid.h +++ b/src/squid.h @@ -1,6 +1,6 @@ /* - * $Id: squid.h,v 1.43 1996/09/03 18:54:09 wessels Exp $ + * $Id: squid.h,v 1.44 1996/09/03 19:24:04 wessels Exp $ * * AUTHOR: Duane Wessels * @@ -293,7 +293,7 @@ extern int sslStart _PARAMS((int fd, char *, request_t *, char *, int *sz)); extern char *storeToString _PARAMS((StoreEntry *)); extern void ttlSet _PARAMS((StoreEntry *)); extern void ttlFreeList _PARAMS((void)); -extern void ttlAddToList _PARAMS((char *, time_t, int, time_t)); +extern void ttlAddToList _PARAMS((char *, int, int, time_t, int, time_t)); extern void ttlAddToForceList _PARAMS((char *, time_t, time_t)); extern int waisStart _PARAMS((int, char *, method_t, char *, StoreEntry *)); extern void storeDirClean _PARAMS((void)); diff --git a/src/stat.cc b/src/stat.cc index 6080786d6b..9892e4aac9 100644 --- a/src/stat.cc +++ b/src/stat.cc @@ -1,5 +1,5 @@ /* - * $Id: stat.cc,v 1.57 1996/08/30 22:44:12 wessels Exp $ + * $Id: stat.cc,v 1.58 1996/09/03 19:24:05 wessels Exp $ * * DEBUG: section 18 Cache Manager Statistics * AUTHOR: Harvest Derived @@ -1225,7 +1225,7 @@ char *flags_describe(entry) strcpy(FLAGS, "F:"); if (BIT_TEST(entry->flag, KEY_CHANGE)) strncat(FLAGS, "K", sizeof(FLAGS) - 1); - if (BIT_TEST(~entry->flag, CACHABLE)) + if (BIT_TEST(entry->flag, ENTRY_CACHABLE)) strncat(FLAGS, "C", sizeof(FLAGS) - 1); if (BIT_TEST(entry->flag, REFRESH_REQUEST)) strncat(FLAGS, "R", sizeof(FLAGS) - 1); diff --git a/src/store.cc b/src/store.cc index 77d80e62cf..80d348ce9b 100644 --- a/src/store.cc +++ b/src/store.cc @@ -1,5 +1,5 @@ /* - * $Id: store.cc,v 1.93 1996/08/30 23:23:35 wessels Exp $ + * $Id: store.cc,v 1.94 1996/09/03 19:24:06 wessels Exp $ * * DEBUG: section 20 Storeage Manager * AUTHOR: Harvest Derived @@ -755,10 +755,10 @@ StoreEntry *storeCreateEntry(url, req_hdr, flags, method) if (BIT_TEST(flags, REQ_NOCACHE)) BIT_SET(e->flag, REFRESH_REQUEST); if (BIT_TEST(flags, REQ_CACHABLE)) { - BIT_SET(e->flag, CACHABLE); + BIT_SET(e->flag, ENTRY_CACHABLE); BIT_RESET(e->flag, RELEASE_REQUEST); } else { - BIT_RESET(e->flag, CACHABLE); + BIT_RESET(e->flag, ENTRY_CACHABLE); storeReleaseRequest(e); } if (BIT_TEST(flags, REQ_HIERARCHICAL)) @@ -819,7 +819,7 @@ StoreEntry *storeAddDiskRestore(url, file_number, size, expires, timestamp, last e->url = xstrdup(url); e->method = METHOD_GET; storeSetPublicKey(e); - BIT_SET(e->flag, CACHABLE); + BIT_SET(e->flag, ENTRY_CACHABLE); BIT_RESET(e->flag, RELEASE_REQUEST); BIT_SET(e->flag, ENTRY_HTML); e->store_status = STORE_OK; @@ -1016,7 +1016,7 @@ void storeStartDeleteBehind(e) storeSetPrivateKey(e); BIT_SET(e->flag, DELETE_BEHIND); storeReleaseRequest(e); - BIT_RESET(e->flag, CACHABLE); + BIT_RESET(e->flag, ENTRY_CACHABLE); storeExpireNow(e); } @@ -1116,6 +1116,8 @@ int storeSwapInHandle(fd_notused, buf, len, flag, e, offset_notused) int offset_notused; { MemObject *mem = e->mem_obj; + SIH handler = NULL; + void *data = NULL; debug(20, 2, "storeSwapInHandle: '%s'\n", e->key); if (mem == NULL) /* XXX remove later */ @@ -1127,10 +1129,11 @@ int storeSwapInHandle(fd_notused, buf, len, flag, e, offset_notused) storeSetMemStatus(e, NOT_IN_MEMORY); file_close(mem->swapin_fd); swapInError(-1, e); /* Invokes storeAbort() and completes the I/O */ - if (mem->swapin_complete_handler) { - (*mem->swapin_complete_handler) (2, mem->swapin_complete_data); + if ((handler = mem->swapin_complete_handler)) { + data = mem->swapin_complete_data; mem->swapin_complete_handler = NULL; mem->swapin_complete_data = NULL; + handler(2, data); } return -1; } @@ -1170,10 +1173,11 @@ int storeSwapInHandle(fd_notused, buf, len, flag, e, offset_notused) debug(20, 0, " --> Only read %d bytes\n", mem->e_current_len); } - if (mem->swapin_complete_handler) { - (*mem->swapin_complete_handler) (0, mem->swapin_complete_data); + if ((handler = mem->swapin_complete_handler)) { + data = mem->swapin_complete_data; mem->swapin_complete_handler = NULL; mem->swapin_complete_data = NULL; + handler(0, data); } if (e->flag & RELEASE_REQUEST) storeRelease(e); @@ -1662,7 +1666,7 @@ static int storeCheckSwapable(e) debug(20, 2, "storeCheckSwapable: NO: expires now\n"); } else if (e->method != METHOD_GET) { debug(20, 2, "storeCheckSwapable: NO: non-GET method\n"); - } else if (!BIT_TEST(e->flag, CACHABLE)) { + } else if (!BIT_TEST(e->flag, ENTRY_CACHABLE)) { debug(20, 2, "storeCheckSwapable: NO: not cachable\n"); } else if (BIT_TEST(e->flag, RELEASE_REQUEST)) { debug(20, 2, "storeCheckSwapable: NO: release requested\n"); @@ -1675,7 +1679,7 @@ static int storeCheckSwapable(e) return 1; storeReleaseRequest(e); - BIT_RESET(e->flag, CACHABLE); + BIT_RESET(e->flag, ENTRY_CACHABLE); return 0; } @@ -2440,22 +2444,15 @@ int storeClientCopy(e, stateoffset, maxSize, buf, size, fd) int storeEntryValidToSend(e) StoreEntry *e; { - /* XXX I think this is not needed since storeCheckPurgeMem() has - * been added. If we never see output from this, lets delete it - * in a future version -DW */ - if ((e->mem_status == NOT_IN_MEMORY) && /* Not in memory */ - (e->swap_status != SWAP_OK) && /* Not on disk */ - (e->store_status != STORE_PENDING) /* Not being fetched */ - ) { - debug(20, 0, "storeEntryValidToSend: Invalid object detected!\n"); - debug(20, 0, "storeEntryValidToSend: Entry Dump:\n%s\n", storeToString(e)); - return 0; - } if (squid_curtime < e->expires) return 1; - if (e->expires == 0 && e->store_status == STORE_PENDING && e->mem_status != NOT_IN_MEMORY) - return 1; - return 0; + if (e->expires != 0) + return 0; /* Expired! */ + if (e->store_status != STORE_PENDING) + return 0; + if (e->mem_status != IN_MEMORY) + return 0; + return 1; /* STORE_PENDING, IN_MEMORY, exp=0 */ } int storeEntryValidLength(e) diff --git a/src/url.cc b/src/url.cc index 1e532edd5e..baeb48421c 100644 --- a/src/url.cc +++ b/src/url.cc @@ -1,6 +1,6 @@ /* - * $Id: url.cc,v 1.31 1996/08/30 23:23:36 wessels Exp $ + * $Id: url.cc,v 1.32 1996/09/03 19:24:08 wessels Exp $ * * DEBUG: section 23 URL Parsing * AUTHOR: Duane Wessels @@ -230,6 +230,9 @@ request_t *urlParse(method, url) } for (t = host; *t; t++) *t = tolower(*t); + /* remove trailing dots from hostnames */ + while ((l = strlen(host)) && host[--l] == '.') + host[l] = '\0'; if (port == 0) { debug(23, 0, "urlParse: Invalid port == 0\n"); return NULL; @@ -313,6 +316,8 @@ int urlCheckRequest(r) request_t *r; { int rc = 0; + if (r->method == METHOD_CONNECT) + return 1; switch (r->protocol) { case PROTO_HTTP: case PROTO_CACHEOBJ: diff --git a/src/wais.cc b/src/wais.cc index eb3b5e3c90..d12330c71b 100644 --- a/src/wais.cc +++ b/src/wais.cc @@ -1,6 +1,6 @@ /* - * $Id: wais.cc,v 1.36 1996/08/26 19:16:08 wessels Exp $ + * $Id: wais.cc,v 1.37 1996/09/03 19:24:09 wessels Exp $ * * DEBUG: section 24 WAIS Relay * AUTHOR: Harvest Derived @@ -226,7 +226,7 @@ static void waisReadReply(fd, waisState) comm_set_select_handler_plus_timeout(fd, COMM_SELECT_TIMEOUT, (PF) waisReadReplyTimeout, (void *) waisState, Config.readTimeout); } else { - BIT_RESET(entry->flag, CACHABLE); + BIT_RESET(entry->flag, ENTRY_CACHABLE); storeReleaseRequest(entry); squid_error_entry(entry, ERR_READ_ERROR, xstrerror()); comm_close(fd); @@ -331,7 +331,7 @@ static void waisSendRequest(fd, waisState) waisSendComplete, (void *) waisState, xfree); - if (BIT_TEST(waisState->entry->flag, CACHABLE)) + if (BIT_TEST(waisState->entry->flag, ENTRY_CACHABLE)) storeSetPublicKey(waisState->entry); /* Make it public */ }