]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
attach request_t to DigestFetchState instead of assuming it will
authorwessels <>
Fri, 24 Jul 1998 06:55:03 +0000 (06:55 +0000)
committerwessels <>
Fri, 24 Jul 1998 06:55:03 +0000 (06:55 +0000)
be with MemObject.

src/peer_digest.cc
src/structs.h

index 975ba4a855380daf2550bff34646b4ef44471e42..187cbd0111ac02b75f9d6349b96d4e6b3dd945db 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: peer_digest.cc,v 1.43 1998/07/22 20:37:40 wessels Exp $
+ * $Id: peer_digest.cc,v 1.44 1998/07/24 00:55:03 wessels Exp $
  *
  * DEBUG: section 72    Peer Digest Routines
  * AUTHOR: Alex Rousskov
@@ -250,8 +250,6 @@ peerDigestRequest(peer * p)
        debug(72, 1) ("peerDigestRequest: Bad URI: %s\n", url);
        return;                 /* @?@ */
     }
-    requestLink(req);
-    assert(req);
     /* add custom headers */
     assert(!req->header.len);
     httpHeaderPutStr(&req->header, HDR_ACCEPT, StoreDigestMimeStr);
@@ -259,6 +257,7 @@ peerDigestRequest(peer * p)
     /* create fetch state structure */
     fetch = memAllocate(MEM_DIGEST_FETCH_STATE);
     cbdataAdd(fetch, MEM_DIGEST_FETCH_STATE);
+    fetch->request = requestLink(req);
     fetch->peer = p;
     fetch->start_time = squid_curtime;
     p->digest.last_req_timestamp = squid_curtime;
@@ -499,13 +498,12 @@ peerDigestFetchFinish(DigestFetchState * fetch, char *buf, const char *err_msg)
 {
     peer *peer = fetch->peer;
     MemObject *mem = fetch->entry->mem_obj;
-    request_t *req = mem->request;
     const time_t expires = fetch->entry->expires;
     const time_t fetch_resp_time = squid_curtime - fetch->start_time;
     const int b_read = (fetch->entry->store_status == STORE_PENDING) ?
     mem->inmem_hi : mem->object_sz;
-    const int req_len = req ? httpRequestPrefixLen(req) : 0;
-    assert(req);
+    const int req_len = fetch->request ? httpRequestPrefixLen(fetch->request) : 0;
+    assert(fetch->request);
     /* final checks */
     if (!err_msg) {
        if (!peer->digest.cd)
@@ -568,8 +566,9 @@ peerDigestFetchFinish(DigestFetchState * fetch, char *buf, const char *err_msg)
     /* unlock everything */
     storeUnregister(fetch->entry, fetch);
     storeUnlockObject(fetch->entry);
-    requestUnlink(req);
+    requestUnlink(fetch->request);
     fetch->entry = NULL;
+    fetch->request = NULL;
     cbdataFree(fetch);
     fetch = NULL;
     if (buf)
index eafbcff033a8adc4c87ca3e59115ab8dbd7f7f52..a4ab5ba0bd0f5ebe3eb2ba000c78d13127e7b2cb 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: structs.h,v 1.191 1998/07/23 05:39:32 wessels Exp $
+ * $Id: structs.h,v 1.192 1998/07/24 00:55:04 wessels Exp $
  *
  *
  * SQUID Internet Object Cache  http://squid.nlanr.net/Squid/
@@ -895,6 +895,7 @@ struct _DigestFetchState {
     int offset;
     int mask_offset;
     time_t start_time;
+    request_t *request;
 };
 
 /* statistics for cache digests and other hit "predictors" */