From: wessels <>
Date: Thu, 17 Oct 1996 17:14:42 +0000 (+0000)
Subject: - Changed cachemgr stats/objects listing format.
X-Git-Tag: SQUID_3_0_PRE1~5636
X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d1a43e28ec0017d5b51dad6dc070841d26028cbc;p=thirdparty%2Fsquid.git
- Changed cachemgr stats/objects listing format.
- Added some missing "entry->refcount++"
- Changed StoreEntry->timestamp to be the last verification time.
(was the stored-on-disk time).
- Fixed stuck objects from "304 Not Modified" responses without
final blank line.
- Added failure detection to icmpRecv().
---
diff --git a/src/cachemgr.cc b/src/cachemgr.cc
index 2d8f5b88a4..8ac2d0119d 100644
--- a/src/cachemgr.cc
+++ b/src/cachemgr.cc
@@ -1,6 +1,6 @@
/*
- * $Id: cachemgr.cc,v 1.37 1996/10/15 23:32:51 wessels Exp $
+ * $Id: cachemgr.cc,v 1.38 1996/10/17 11:14:42 wessels Exp $
*
* DEBUG: Section 0 CGI Cache Manager
* AUTHOR: Harvest Derived
@@ -299,7 +299,9 @@ static char *op_cmds_descr[] =
static int hasTables = FALSE;
static char *script_name = "/cgi-bin/cachemgr.cgi";
-char *progname = NULL;
+static char *w_space = " \t\n";
+static char *progname = NULL;
+static time_t now;
static char x2c _PARAMS((char *));
static int client_comm_connect _PARAMS((int sock, char *dest_host, u_short dest_port));
@@ -308,11 +310,11 @@ static void noargs_html _PARAMS((char *, int, char *));
static void unescape_url _PARAMS((char *));
static void plustospace _PARAMS((char *));
static void parse_object _PARAMS((char *));
+static char *describeTimeSince _PARAMS((time_t then));
static void
print_trailer(void)
{
- time_t now = time(NULL);
static char tbuf[128];
struct tm *gmt;
@@ -478,82 +480,122 @@ plustospace(char *str)
str[x] = ' ';
}
+#define ONE_SECOND (1)
+#define ONE_MINUTE (ONE_SECOND*60)
+#define ONE_HOUR (ONE_MINUTE*60)
+#define ONE_DAY (ONE_HOUR*24)
+#define ONE_WEEK (ONE_DAY*7)
+#define ONE_MONTH (ONE_DAY*30)
+#define ONE_YEAR (ONE_DAY*365)
+
+static char *
+describeTimeSince(time_t then)
+{
+ time_t delta = now - then;
+ static char buf[128];
+ static char buf2[128];
+ char *fmt = "%s ago";
+ buf[0] = '\0';
+ if (delta < 0) {
+ delta = (-delta);
+ fmt = "in %s";
+ }
+ if (delta < ONE_MINUTE)
+ sprintf(buf, "%ds", (int) (delta / ONE_SECOND));
+ else if (delta < ONE_HOUR)
+ sprintf(buf, "%dm", (int) (delta / ONE_MINUTE));
+ else if (delta < ONE_DAY)
+ sprintf(buf, "%dh", (int) (delta / ONE_HOUR));
+ else if (delta < ONE_WEEK)
+ sprintf(buf, "%dD", (int) (delta / ONE_DAY));
+ else if (delta < ONE_MONTH)
+ sprintf(buf, "%dW", (int) (delta / ONE_WEEK));
+ else if (delta < ONE_YEAR)
+ sprintf(buf, "%dM", (int) (delta / ONE_MONTH));
+ else
+ sprintf(buf, "%dY", (int) (delta / ONE_YEAR));
+ sprintf(buf2, fmt, buf);
+ return buf2;
+}
static void
parse_object(char *string)
{
- char *tmp_line = NULL;
+ char *tbuf = NULL;
+ char *store_status = NULL;
+ char *mem_status = NULL;
+ char *swap_status = NULL;
+ char *ping_status = NULL;
+ char *lock_count = NULL;
+ char *flags = NULL;
+ char *last_verified = NULL;
+ char *last_use = NULL;
+ char *last_modified = NULL;
+ char *expires = NULL;
+ char *refcount = NULL;
+ char *clients = NULL;
+ char *size = NULL;
char *url = NULL;
- char *token = NULL;
- char *store_time = NULL;
- char *last_ref = NULL;
- char *ttl = NULL;
- char *sto = NULL;
- char *status = NULL;
- char *obj_status = NULL;
- char *w_space = " \t\n";
- int obj_size;
- int ref_cnt;
-
- /* Use tmp_line as a temporary pointer to the input line */
- tmp_line = string;
-
- /* Parse out the url */
- url = strtok(tmp_line, w_space);
-
- if (!url)
- return;
+
+ tbuf = xstrdup(string);
+
+ if ((store_status = strtok(tbuf, w_space)) == NULL)
+ goto parse_obj_done;
+ if ((mem_status = strtok(NULL, w_space)) == NULL)
+ goto parse_obj_done;
+ if ((swap_status = strtok(NULL, w_space)) == NULL)
+ goto parse_obj_done;
+ if ((ping_status = strtok(NULL, w_space)) == NULL)
+ goto parse_obj_done;
+ if ((lock_count = strtok(NULL, w_space)) == NULL)
+ goto parse_obj_done;
+ if ((flags = strtok(NULL, w_space)) == NULL)
+ goto parse_obj_done;
+ if ((last_verified = strtok(NULL, w_space)) == NULL)
+ goto parse_obj_done;
+ if ((last_use = strtok(NULL, w_space)) == NULL)
+ goto parse_obj_done;
+ if ((last_modified = strtok(NULL, w_space)) == NULL)
+ goto parse_obj_done;
+ if ((expires = strtok(NULL, w_space)) == NULL)
+ goto parse_obj_done;
+ if ((refcount = strtok(NULL, w_space)) == NULL)
+ goto parse_obj_done;
+ if ((clients = strtok(NULL, w_space)) == NULL)
+ goto parse_obj_done;
+ if ((size = strtok(NULL, w_space)) == NULL)
+ goto parse_obj_done;
+ if ((url = strtok(NULL, w_space)) == NULL)
+ goto parse_obj_done;
#if !ALL_OBJECTS
if (!strncmp(url, "cache_object", 12))
- return;
+ goto parse_obj_done;
if (!strncmp(url, "POST", 4))
- return;
+ goto parse_obj_done;
#endif
- tmp_line = NULL;
-
- token = strtok(tmp_line, w_space);
- sscanf(token, "%d", &obj_size);
-
- token = strtok(tmp_line, w_space);
- store_time = xstrdup(token);
-
- token = strtok(tmp_line, w_space);
- obj_status = xstrdup(token);
-
- token = strtok(tmp_line, w_space);
- last_ref = xstrdup(token);
-
- token = strtok(tmp_line, w_space);
- ttl = xstrdup(token);
-
- token = strtok(tmp_line, w_space);
- /* Active */
-
- token = strtok(tmp_line, w_space);
- sscanf(token, "%d", &ref_cnt);
-
- token = strtok(tmp_line, w_space);
- sto = xstrdup(token);
-
- token = strtok(tmp_line, w_space);
- status = xstrdup(token);
-
- printf("
Cache: %s
",
+ printf("%s
",
url, url);
- printf("Size: %d bytes, TTL: %s ,
",
- obj_size, ttl);
- printf("Stored: %s, %s ago, %s %s,
",
- sto, store_time, obj_status, status);
- printf("Refs: %d, Referenced %s hh:mm:ss ago\n",
- ref_cnt, last_ref);
-
- free(ttl);
- free(store_time);
- free(last_ref);
- free(sto);
- free(status);
+ printf("Verified %s, ", describeTimeSince((time_t) atoi(last_verified + 3)));
+ printf("Used %s, ", describeTimeSince((time_t) atoi(last_use + 3)));
+ printf("Modified %s, ", describeTimeSince((time_t) atoi(last_modified + 3)));
+ printf("Expires %s,
", describeTimeSince((time_t) atoi(expires + 3)));
+ printf("%d bytes, %d accesses, %d active clients,
",
+ atoi(size),
+ atoi(refcount),
+ atoi(clients));
+ printf("%s, %s, %s, %s,
",
+ store_status,
+ mem_status,
+ swap_status,
+ ping_status);
+ printf("%d Locks, Flags: %s\n",
+ atoi(lock_count),
+ flags);
+
+ parse_obj_done:
+ xfree(tbuf);
}
int
@@ -586,8 +628,8 @@ main(int argc, char *argv[])
int d1, d2, d3, d4, d5, d6, d7;
int single = TRUE;
float f1;
- time_t time_val;
+ now = time(NULL);
if ((s = strrchr(argv[0], '/')))
progname = xstrdup(s + 1);
else
@@ -725,8 +767,7 @@ main(int argc, char *argv[])
/* NOTREACHED */
}
- time_val = time(NULL);
- time_string = ctime(&time_val);
+ time_string = ctime(&now);
printf("Cache Manager: %s:%s:%d\n",
operation, hostname, portnum);
diff --git a/src/client_side.cc b/src/client_side.cc
index c3a2672913..0e99e6d5da 100644
--- a/src/client_side.cc
+++ b/src/client_side.cc
@@ -1,6 +1,6 @@
/*
- * $Id: client_side.cc,v 1.45 1996/10/15 05:35:53 wessels Exp $
+ * $Id: client_side.cc,v 1.46 1996/10/17 11:14:44 wessels Exp $
*
* DEBUG: section 33 Client-side Routines
* AUTHOR: Duane Wessels
@@ -386,7 +386,7 @@ icpProcessExpired(int fd, icpStateData * icpState)
debug(33, 5, "icpProcessExpired: setting lmt = %d\n",
entry->lastmod);
- entry->refcount++; /* MISS CASE */
+ entry->refcount++; /* EXPIRED CASE */
entry->mem_obj->fd_of_first_client = fd;
icpState->entry = entry;
icpState->offset = 0;
@@ -409,7 +409,7 @@ icpHandleIMSReply(int fd, StoreEntry * entry, void *data)
/* unregister this handler */
storeUnregister(entry, fd);
if (entry->store_status == STORE_ABORTED) {
- debug(33, 3, "icpHandleIMSReply: ABORTED/%s '%s'\n",
+ debug(33, 1, "icpHandleIMSReply: ABORTED/%s '%s'\n",
log_tags[entry->mem_obj->abort_code], entry->url);
/* We have an existing entry, but failed to validate it,
* so send the old one anyway */
@@ -417,7 +417,7 @@ icpHandleIMSReply(int fd, StoreEntry * entry, void *data)
storeUnlockObject(entry);
icpState->entry = icpState->old_entry;
} else if (mem->reply->code == 0) {
- debug(33, 3, "icpHandleIMSReply: Incomplete headers for '%s'\n",
+ debug(33, 1, "icpHandleIMSReply: Incomplete headers for '%s'\n",
entry->url);
storeRegister(entry,
fd,
@@ -425,7 +425,6 @@ icpHandleIMSReply(int fd, StoreEntry * entry, void *data)
(void *) icpState);
return 0;
} else if (mem->reply->code == 304 && !BIT_TEST(icpState->request->flags, REQ_IMS)) {
-
/* We initiated the IMS request, the client is not expecting
* 304, so put the good one back. First, make sure the old entry
* headers have been loaded from disk. */
@@ -446,6 +445,7 @@ icpHandleIMSReply(int fd, StoreEntry * entry, void *data)
}
storeUnlockObject(entry);
entry = icpState->entry = oldentry;
+ entry->timestamp = squid_curtime;
if (mime_headers_end(hbuf)) {
httpParseHeaders(hbuf, entry->mem_obj->reply);
ttlSet(entry);
@@ -460,6 +460,10 @@ icpHandleIMSReply(int fd, StoreEntry * entry, void *data)
}
} else {
/* the client can handle this reply, whatever it is */
+ if (mem->reply->code == 304) {
+ icpState->old_entry->timestamp = squid_curtime;
+ icpState->old_entry->refcount++;
+ }
icpState->log_type = LOG_TCP_EXPIRED_MISS;
storeUnlockObject(icpState->old_entry);
}
diff --git a/src/http.cc b/src/http.cc
index 4e85e3628a..1b22da6c43 100644
--- a/src/http.cc
+++ b/src/http.cc
@@ -1,5 +1,5 @@
/*
- * $Id: http.cc,v 1.84 1996/10/15 05:45:36 wessels Exp $
+ * $Id: http.cc,v 1.85 1996/10/17 11:14:45 wessels Exp $
*
* DEBUG: section 11 Hypertext Transfer Protocol (HTTP)
* AUTHOR: Harvest Derived
@@ -311,8 +311,11 @@ httpProcessReplyHeader(HttpStateData * httpState, char *buf, int size)
entry->mem_obj->reply->code = 555;
return;
}
- if ((t = mime_headers_end(httpState->reply_hdr)) == NULL)
- return; /* headers not complete */
+ t = httpState->reply_hdr + hdr_len;
+ /* headers can be incomplete only if object still arriving */
+ if (entry->store_status == STORE_PENDING)
+ if ((t = mime_headers_end(httpState->reply_hdr)) == NULL)
+ return; /* headers not complete */
*t = '\0';
reply = entry->mem_obj->reply;
reply->hdr_sz = t - httpState->reply_hdr;
@@ -484,7 +487,10 @@ httpReadReply(int fd, void *data)
comm_close(fd);
} else if (len == 0) {
/* Connection closed; retrieval done. */
- storeComplete(entry);
+ if (httpState->reply_hdr_state < 2)
+ httpProcessReplyHeader(httpState, buf, len);
+ storeAppend(entry, buf, len); /* invoke handlers! */
+ storeComplete(entry); /* deallocates mem_obj->request */
comm_close(fd);
} else if ((entry->mem_obj->e_current_len + len) > Config.Http.maxObjSize &&
!(entry->flag & DELETE_BEHIND)) {
@@ -505,7 +511,7 @@ httpReadReply(int fd, void *data)
squid_error_entry(entry, ERR_CLIENT_ABORT, NULL);
comm_close(fd);
} else {
- if (httpState->reply_hdr_state < 2 && len > 0)
+ if (httpState->reply_hdr_state < 2)
httpProcessReplyHeader(httpState, buf, len);
storeAppend(entry, buf, len);
commSetSelect(fd,
diff --git a/src/icmp.cc b/src/icmp.cc
index 0d7697d6f8..d682ac5dba 100644
--- a/src/icmp.cc
+++ b/src/icmp.cc
@@ -1,6 +1,6 @@
/*
- * $Id: icmp.cc,v 1.22 1996/10/15 23:32:51 wessels Exp $
+ * $Id: icmp.cc,v 1.23 1996/10/17 11:14:46 wessels Exp $
*
* DEBUG: section 37 ICMP Routines
* AUTHOR: Duane Wessels
@@ -74,6 +74,7 @@ static void
icmpRecv(int unused1, void *unused2)
{
int n;
+ int fail_count = 0;
pingerReplyData preply;
static struct sockaddr_in F;
commSetSelect(icmp_sock,
@@ -87,8 +88,13 @@ icmpRecv(int unused1, void *unused2)
0);
if (n < 0) {
debug(37, 0, "icmpRecv: recv: %s\n", xstrerror());
+ if (++fail_count == 10) {
+ comm_close(icmp_sock);
+ icmp_sock = -1;
+ }
return;
}
+ fail_count = 0;
if (n == 0) /* test probe from pinger */
return;
F.sin_family = AF_INET;
diff --git a/src/stat.cc b/src/stat.cc
index 4dec73d68e..598b40cf11 100644
--- a/src/stat.cc
+++ b/src/stat.cc
@@ -1,6 +1,6 @@
/*
- * $Id: stat.cc,v 1.88 1996/10/15 18:06:25 wessels Exp $
+ * $Id: stat.cc,v 1.89 1996/10/17 11:14:48 wessels Exp $
*
* DEBUG: section 18 Cache Manager Statistics
* AUTHOR: Harvest Derived
@@ -130,11 +130,9 @@ char *close_bracket = "}\n";
extern char *diskFileName _PARAMS((int));
/* LOCALS */
-static char *stat_describe _PARAMS((StoreEntry * entry));
-static char *mem_describe _PARAMS((StoreEntry * entry));
-static char *ttl_describe _PARAMS((StoreEntry * entry));
-static char *flags_describe _PARAMS((StoreEntry * entry));
-static char *elapsed_time _PARAMS((StoreEntry * entry, int since, char *TTL));
+static char *describeStatuses _PARAMS((StoreEntry *));
+static char *describeFlags _PARAMS((StoreEntry *));
+static char *describeTimestamps _PARAMS((StoreEntry *));
static void dummyhandler _PARAMS((cacheinfo *, StoreEntry *));
static void info_get _PARAMS((cacheinfo *, StoreEntry *));
static void logReadEndHandler _PARAMS((int, int, log_read_data_t *));
@@ -309,44 +307,101 @@ cache_size_get(cacheinfo * obj)
return size;
}
+static char *
+describeStatuses(StoreEntry * entry)
+{
+ LOCAL_ARRAY(char, buf, 256);
+ sprintf(buf, "%-13s %-13s %-12s %-12s",
+ storeStatusStr[entry->store_status],
+ memStatusStr[entry->mem_status],
+ swapStatusStr[entry->swap_status],
+ pingStatusStr[entry->ping_status]);
+ return buf;
+}
+
+static char *
+describeFlags(StoreEntry * entry)
+{
+ LOCAL_ARRAY(char, buf, 256);
+ int flags = (int) entry->flag;
+ char *t;
+ buf[0] = '\0';
+ if (BIT_TEST(flags, IP_LOOKUP_PENDING))
+ strcat(buf, "IP,");
+ if (BIT_TEST(flags, DELETE_BEHIND))
+ strcat(buf, "DB,");
+ if (BIT_TEST(flags, CLIENT_ABORT_REQUEST))
+ strcat(buf, "CA,");
+ if (BIT_TEST(flags, DELAY_SENDING))
+ strcat(buf, "DS,");
+ if (BIT_TEST(flags, ABORT_MSG_PENDING))
+ strcat(buf, "AP,");
+ if (BIT_TEST(flags, RELEASE_REQUEST))
+ strcat(buf, "RL,");
+ if (BIT_TEST(flags, REFRESH_REQUEST))
+ strcat(buf, "RF,");
+ if (BIT_TEST(flags, ENTRY_CACHABLE))
+ strcat(buf, "EC,");
+ if (BIT_TEST(flags, KEY_CHANGE))
+ strcat(buf, "KC,");
+ if (BIT_TEST(flags, KEY_URL))
+ strcat(buf, "KU,");
+ if (BIT_TEST(flags, ENTRY_HTML))
+ strcat(buf, "HT,");
+ if (BIT_TEST(flags, ENTRY_DISPATCHED))
+ strcat(buf, "ED,");
+ if (BIT_TEST(flags, KEY_PRIVATE))
+ strcat(buf, "KP,");
+ if (BIT_TEST(flags, HIERARCHICAL))
+ strcat(buf, "HI,");
+ if (BIT_TEST(flags, ENTRY_NEGCACHED))
+ strcat(buf, "NG,");
+ if (BIT_TEST(flags, READ_DEFERRED))
+ strcat(buf, "RD,");
+ if ((t = strrchr(buf, ',')))
+ *t = '\0';
+ return buf;
+}
+
+static char *
+describeTimestamps(StoreEntry * entry)
+{
+ LOCAL_ARRAY(char, buf, 256);
+ sprintf(buf, "LV:%-9d LU:%-9d LM:%-9d EX:%-9d",
+ (int) entry->timestamp,
+ (int) entry->lastref,
+ (int) entry->lastmod,
+ (int) entry->expires);
+ return buf;
+}
+
/* process objects list */
static void
stat_objects_get(cacheinfo * obj, StoreEntry * sentry, int vm_or_not)
{
- LOCAL_ARRAY(char, space, 40);
- LOCAL_ARRAY(char, space2, 40);
- int npend = 0;
StoreEntry *entry = NULL;
+ MemObject *mem;
int N = 0;
- int obj_size;
storeAppendPrintf(sentry, open_bracket);
- for (entry = storeGetFirst();
- entry != NULL;
- entry = storeGetNext()) {
- if (vm_or_not && (entry->mem_status == NOT_IN_MEMORY) &&
- (entry->swap_status == SWAP_OK))
+ for (entry = storeGetFirst(); entry != NULL; entry = storeGetNext()) {
+ mem = entry->mem_obj;
+ if (vm_or_not && mem == NULL)
continue;
if ((++N & 0xFF) == 0) {
getCurrentTime();
debug(18, 3, "stat_objects_get: Processed %d objects...\n", N);
}
- obj_size = entry->object_len;
- npend = storePendingNClients(entry);
- if (entry->mem_obj)
- obj_size = entry->mem_obj->e_current_len;
- storeAppendPrintf(sentry, "{ %s %d %s %s %s %s %d %d %s %s }\n",
- entry->url,
- obj_size,
- elapsed_time(entry, (int) entry->timestamp, space),
- flags_describe(entry),
- elapsed_time(entry, (int) entry->lastref, space2),
- ttl_describe(entry),
- npend,
+ storeAppendPrintf(sentry, "{%s %dL %-25s %s %3d %2d %8d %s}\n",
+ describeStatuses(entry),
+ (int) entry->lock_count,
+ describeFlags(entry),
+ describeTimestamps(entry),
(int) entry->refcount,
- mem_describe(entry),
- stat_describe(entry));
+ storePendingNClients(entry),
+ mem ? mem->e_current_len : entry->object_len,
+ entry->url);
}
storeAppendPrintf(sentry, close_bracket);
}
@@ -1288,111 +1343,6 @@ stat_init(cacheinfo ** object, char *logfilename)
*object = obj;
}
-static char *
-stat_describe(StoreEntry * entry)
-{
- LOCAL_ARRAY(char, state, 256);
-
- state[0] = '\0';
- sprintf(state, "%s/%s",
- storeStatusStr[entry->store_status],
- pingStatusStr[entry->ping_status]);
- return (state);
-}
-
-static char *
-mem_describe(StoreEntry * entry)
-{
- LOCAL_ARRAY(char, where, 100);
-
- where[0] = '\0';
- sprintf(where, "D%d/%s/%s",
- entry->swap_file_number,
- swapStatusStr[entry->swap_status],
- memStatusStr[entry->mem_status]);
- return (where);
-}
-
-
-static char *
-ttl_describe(StoreEntry * entry)
-{
- int hh, mm, ss;
- LOCAL_ARRAY(char, TTL, 60);
- int ttl;
-
- TTL[0] = '\0';
- strcpy(TTL, "UNKNOWN"); /* sometimes the TTL isn't set below */
- ttl = entry->expires - squid_curtime;
- if (ttl < 0)
- strcpy(TTL, "EXPIRED");
- else {
-
- hh = ttl / 3600;
- ttl -= hh * 3600;
- mm = ttl / 60;
- ttl -= mm * 60;
- ss = ttl;
-
- sprintf(TTL, "% 6d:%02d:%02d", hh, mm, ss);
- }
- return (TTL);
-}
-
-static char *
-elapsed_time(StoreEntry * entry, int since, char *TTL)
-{
- int hh, mm, ss, ttl;
-
- TTL[0] = '\0';
- strcpy(TTL, "UNKNOWN"); /* sometimes TTL doesn't get set */
- ttl = squid_curtime - since;
- if (since == 0) {
- strcpy(TTL, "NEVER");
- } else if (ttl < 0) {
- strcpy(TTL, "EXPIRED");
- } else {
- hh = ttl / 3600;
- ttl -= hh * 3600;
- mm = ttl / 60;
- ttl -= mm * 60;
- ss = ttl;
- sprintf(TTL, "% 6d:%02d:%02d", hh, mm, ss);
- }
- return (TTL);
-}
-
-
-static char *
-flags_describe(StoreEntry * entry)
-{
- LOCAL_ARRAY(char, FLAGS, 32);
- char LOCK_CNT[32];
-
- strcpy(FLAGS, "F:");
- if (BIT_TEST(entry->flag, KEY_CHANGE))
- strncat(FLAGS, "K", sizeof(FLAGS) - 1);
- 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);
- if (BIT_TEST(entry->flag, RELEASE_REQUEST))
- strncat(FLAGS, "Z", sizeof(FLAGS) - 1);
- if (BIT_TEST(entry->flag, ABORT_MSG_PENDING))
- strncat(FLAGS, "A", sizeof(FLAGS) - 1);
- if (BIT_TEST(entry->flag, DELAY_SENDING))
- strncat(FLAGS, "D", sizeof(FLAGS) - 1);
- if (BIT_TEST(entry->flag, IP_LOOKUP_PENDING))
- strncat(FLAGS, "P", sizeof(FLAGS) - 1);
- if (entry->lock_count)
- strncat(FLAGS, "L", sizeof(FLAGS) - 1);
- if (entry->lock_count) {
- sprintf(LOCK_CNT, "%d", entry->lock_count);
- strncat(FLAGS, LOCK_CNT, sizeof(FLAGS) - 1);
- }
- return (FLAGS);
-}
-
void
stat_rotate_log(void)
{
diff --git a/src/store.cc b/src/store.cc
index 006a46d275..4db602f39d 100644
--- a/src/store.cc
+++ b/src/store.cc
@@ -1,6 +1,6 @@
/*
- * $Id: store.cc,v 1.131 1996/10/15 23:32:55 wessels Exp $
+ * $Id: store.cc,v 1.132 1996/10/17 11:14:50 wessels Exp $
*
* DEBUG: section 20 Storeage Manager
* AUTHOR: Harvest Derived
@@ -788,7 +788,7 @@ storeCreateEntry(char *url,
mem->data = new_MemObjectData();
e->refcount = 0;
e->lastref = squid_curtime;
- e->timestamp = 0; /* set in storeSwapOutHandle() */
+ e->timestamp = 0; /* set in ttlSet() */
e->ping_status = PING_NONE;
/* allocate pending list */
@@ -1273,7 +1273,6 @@ storeSwapOutHandle(int fd, int flag, StoreEntry * e)
debug_trap("Someone is swapping out a bad entry");
return;
}
- e->timestamp = squid_curtime;
storeSwapFullPath(e->swap_file_number, filename);
if (flag < 0) {
@@ -1416,7 +1415,6 @@ storeDoRebuildFromDisk(struct storeRebuild_data *data)
int scan4;
struct stat sb;
off_t size;
- int delta;
int sfileno = 0;
int count;
int x;
@@ -1480,6 +1478,7 @@ storeDoRebuildFromDisk(struct storeRebuild_data *data)
safeunlink(swapfile, 1);
continue;
}
+#ifdef DONT_DO_THIS
/* timestamp might be a little bigger than sb.st_mtime */
delta = (int) (timestamp - sb.st_mtime);
if (delta > REBUILD_TIMESTAMP_DELTA_MAX || delta < 0) {
@@ -1487,13 +1486,16 @@ storeDoRebuildFromDisk(struct storeRebuild_data *data)
data->clashcount++;
continue;
}
+#endif
/* Wrong size? */
if (sb.st_size != size) {
/* this log entry doesn't correspond to this file */
data->clashcount++;
continue;
}
+#ifdef DONT_DO_THIS
timestamp = sb.st_mtime;
+#endif
debug(20, 9, "storeRebuildFromDisk: swap file exists: : %s\n",
url, swapfile);
}