/*
- * $Id: forward.cc,v 1.64 1999/08/02 06:18:36 wessels Exp $
+ * $Id: forward.cc,v 1.65 1999/09/29 00:22:13 wessels Exp $
*
* DEBUG: section 17 Request Forwarding
* AUTHOR: Duane Wessels
int sfd;
debug(17, 3) ("fwdStateFree: %p\n", fwdState);
assert(e->mem_obj);
+#if URL_CHECKSUM_DEBUG
+ assert(e->mem_obj->chksum == url_checksum(e->mem_obj->url));
+#endif
if (e->store_status == STORE_PENDING) {
if (e->mem_obj->inmem_hi == 0) {
assert(fwdState->err);
fwdConnectDone(fd, COMM_OK, fwdState);
return;
}
+#if URL_CHECKSUM_DEBUG
+ assert(fwdState->entry->mem_obj->chksum == url_checksum(url));
+#endif
fd = comm_open(SOCK_STREAM,
0,
Config.Addrs.tcp_outgoing,
http_status s;
assert(e->store_status == STORE_PENDING);
assert(e->mem_obj);
+#if URL_CHECKSUM_DEBUG
+ assert(e->mem_obj->chksum == url_checksum(e->mem_obj->url));
+#endif
debug(17, 3) ("fwdReforward: %s?\n", storeUrl(e));
if (!EBIT_TEST(e->flags, ENTRY_FWD_HDR_WAIT)) {
debug(17, 3) ("fwdReforward: No, ENTRY_FWD_HDR_WAIT isn't set\n");
debug(17, 3) ("fwdStart: '%s'\n", storeUrl(e));
e->mem_obj->request = requestLink(r);
e->mem_obj->fd = fd;
+#if URL_CHECKSUM_DEBUG
+ assert(e->mem_obj->chksum == url_checksum(e->mem_obj->url));
+#endif
if (shutting_down) {
/* more yuck */
err = errorCon(ERR_SHUTTING_DOWN, HTTP_SERVICE_UNAVAILABLE);
MemObject *mem = e->mem_obj;
if (mem == NULL)
return 0;
+#if URL_CHECKSUM_DEBUG
+ assert(e->mem_obj->chksum == url_checksum(e->mem_obj->url));
+#endif
#if DELAY_POOLS
if (fd < 0)
(void) 0;
assert(e->store_status == STORE_PENDING);
debug(17, 3) ("fwdComplete: %s\n\tstatus %d\n", storeUrl(e),
e->mem_obj->reply->sline.status);
+#if URL_CHECKSUM_DEBUG
+ assert(e->mem_obj->chksum == url_checksum(e->mem_obj->url));
+#endif
fwdLogReplyStatus(fwdState->n_tries, e->mem_obj->reply->sline.status);
if (fwdReforward(fwdState)) {
debug(17, 3) ("fwdComplete: re-forwarding %d %s\n",
/*
- * $Id: http.cc,v 1.352 1999/08/02 06:18:37 wessels Exp $
+ * $Id: http.cc,v 1.353 1999/09/29 00:22:14 wessels Exp $
*
* DEBUG: section 11 Hypertext Transfer Protocol (HTTP)
* AUTHOR: Harvest Derived
ErrorState *err;
debug(11, 5) ("httpSendComplete: FD %d: size %d: errflag %d.\n",
fd, size, errflag);
+#if URL_CHECKSUM_DEBUG
+ assert(entry->mem_obj->chksum == url_checksum(entry->mem_obj->url));
+#endif
if (size > 0) {
fd_bytes(fd, size, FD_WRITE);
kb_incr(&Counter.server.all.kbytes_out, size);
/*
- * $Id: protos.h,v 1.345 1999/09/28 23:48:47 wessels Exp $
+ * $Id: protos.h,v 1.346 1999/09/29 00:22:16 wessels Exp $
*
*
* SQUID Internet Object Cache http://squid.nlanr.net/Squid/
extern int getpagesize(void);
extern int gethostname(char *, int);
#endif
+
+#if URL_CHECKSUM_DEBUG
+extern unsigned int url_checksum(const char *url);
+#endif
/*
- * $Id: store.cc,v 1.507 1999/08/02 06:18:42 wessels Exp $
+ * $Id: store.cc,v 1.508 1999/09/29 00:22:18 wessels Exp $
*
* DEBUG: section 20 Storage Manager
* AUTHOR: Harvest Derived
static int store_swap_mid = 0;
static Stack LateReleaseStack;
+#if URL_CHECKSUM_DEBUG
+unsigned int
+url_checksum(const char *url)
+{
+ unsigned int ck;
+ MD5_CTX M;
+ static unsigned char digest[16];
+ MD5Init(&M);
+ MD5Update(&M, (unsigned char *) url, strlen(url));
+ MD5Final(digest, &M);
+ xmemcpy(&ck, digest, sizeof(ck));
+ return ck;
+}
+#endif
+
static MemObject *
new_MemObject(const char *url, const char *log_url)
{
MemObject *mem = memAllocate(MEM_MEMOBJECT);
mem->reply = httpReplyCreate();
mem->url = xstrdup(url);
+#if URL_CHECKSUM_DEBUG
+ mem->chksum = url_checksum(mem->url);
+#endif
mem->log_url = xstrdup(log_url);
mem->object_sz = -1;
mem->fd = -1;
MemObject *mem = e->mem_obj;
const Ctx ctx = ctx_enter(mem->url);
debug(20, 3) ("destroy_MemObject: destroying %p\n", mem);
+#if URL_CHECKSUM_DEBUG
+ assert(mem->chksum == url_checksum(mem->url));
+#endif
e->mem_obj = NULL;
if (!shutting_down)
assert(mem->swapout.sio == NULL);
/*
- * $Id: structs.h,v 1.305 1999/08/02 06:18:48 wessels Exp $
+ * $Id: structs.h,v 1.306 1999/09/29 00:22:20 wessels Exp $
*
*
* SQUID Internet Object Cache http://squid.nlanr.net/Squid/
int id;
ssize_t object_sz;
size_t swap_hdr_sz;
+#if URL_CHECKSUM_DEBUG
+ unsigned int chksum;
+#endif
};
struct _StoreEntry {