]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
squid-1.0.12 merge
authorwessels <>
Wed, 4 Sep 1996 01:23:59 +0000 (01:23 +0000)
committerwessels <>
Wed, 4 Sep 1996 01:23:59 +0000 (01:23 +0000)
12 files changed:
ChangeLog
configure
configure.in
src/cache_cf.cc
src/ftp.cc
src/gopher.cc
src/http.cc
src/squid.h
src/stat.cc
src/store.cc
src/url.cc
src/wais.cc

index 026cdf7f79640e31fa1ab7d6d654e28af98c8c9c..7c2464bb450c1014aa67fdb20cb67ec0d2d6ec84 100644 (file)
--- 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
index d500f7853273bd62a937e444a93b3a4c6a238368..15ad4acd8a5582bd2fc431b0289f26069cda08f6 100755 (executable)
--- 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 <<EOF
 #line 2316 "configure"
@@ -2333,7 +2333,7 @@ eval $ac_link
 if test -s conftest && (./conftest; exit) 2>/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 <<EOF
 #line 2352 "configure"
@@ -2369,7 +2369,7 @@ eval $ac_link
 if test -s conftest && (./conftest; exit) 2>/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 <<EOF
 #line 2388 "configure"
@@ -2405,7 +2405,7 @@ eval $ac_link
 if test -s conftest && (./conftest; exit) 2>/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 <<EOF
 #line 2424 "configure"
@@ -2441,7 +2441,7 @@ eval $ac_link
 if test -s conftest && (./conftest; exit) 2>/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*
index 9e284b53b5c17c2b2e6dde99bc977eed01e3b163..e02ee6784f4cabb60e65d65170f5f5aa3ec9218b 100644 (file)
@@ -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)
 
index e67144702cb15302d1f51dba4a15ee840f55fd80..d849b508195e7eaf21eeb976b31473e284835be3 100644 (file)
@@ -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();
index a6e874164e22e8a8210cd4150acda2d7fb09f7bf..ac6d6c645e82e4a7b8ac372308f673f1edb1f0c9 100644 (file)
@@ -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);
index fef1b7acb1cc39e388a27c38f9194d555fac8123..e3c9ccc148aa97f0b96433f341650b91dce71ded 100644 (file)
@@ -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 */
 }
 
index dd6bb60f21bb31f9f266f18a7c511df5125e9660..e9017770923bfb6dfd14eca33982f48996decea9 100644 (file)
@@ -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);
index de214fc5b0e5e2e20f12f7f8ceb45d720bddfe1f..69939552605463ffa71e532ff837b3739698d28d 100644 (file)
@@ -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));
index 6080786d6b7078154d5098704cd77962c013e02a..9892e4aac9f3fdea53d84fc82c12499564dc39a6 100644 (file)
@@ -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);
index 77d80e62cfb6853e81baf772e8f4336691ab2771..80d348ce9bf69135a17d8674b2715be3972dccc2 100644 (file)
@@ -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)
index 1e532edd5e868bdf9e00321d166e76e148a3710b..baeb48421c5c5e1bc033de76932011f20c28a3e7 100644 (file)
@@ -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:
index eb3b5e3c90eec0c309ed301bd5e56f145eaecf0b..d12330c71b399753405c835892b3fc11e02b8a11 100644 (file)
@@ -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 */
 }