From: hno <> Date: Wed, 24 May 2006 02:29:04 +0000 (+0000) Subject: cleanup of how the Vary marker object is created X-Git-Tag: SQUID_3_0_PRE4~96 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=eab8dcfa457420f24e52d94d77dc506995dc4a0a;p=thirdparty%2Fsquid.git cleanup of how the Vary marker object is created to look more like a normal object creation, not violating layers too much --- diff --git a/src/store.cc b/src/store.cc index 85c60a78ce..befe61ff39 100644 --- a/src/store.cc +++ b/src/store.cc @@ -1,6 +1,6 @@ /* - * $Id: store.cc,v 1.594 2006/05/23 16:22:34 hno Exp $ + * $Id: store.cc,v 1.595 2006/05/23 20:29:04 hno Exp $ * * DEBUG: section 20 Storage Manager * AUTHOR: Harvest Derived @@ -670,7 +670,6 @@ storeSetPublicKey(StoreEntry * e) assert(!EBIT_TEST(e->flags, RELEASE_REQUEST)); if (mem->request) { - StoreEntry *pe; HttpRequest *request = mem->request; if (!mem->vary_headers) { @@ -682,7 +681,7 @@ storeSetPublicKey(StoreEntry * e) * to record the new variance key */ safe_free(request->vary_headers); /* free old "bad" variance key */ - pe = storeGetPublic(mem->url, mem->method); + StoreEntry *pe = storeGetPublic(mem->url, mem->method); if (pe) pe->release(); @@ -700,10 +699,10 @@ storeSetPublicKey(StoreEntry * e) if (mem->vary_headers && !storeGetPublic(mem->url, mem->method)) { /* Create "vary" base object */ String vary; - pe = storeCreateEntry(mem->url, mem->log_url, request->flags, request->method); + StoreEntry *pe = storeCreateEntry(mem->url, mem->log_url, request->flags, request->method); HttpVersion version(1, 0); /* We are allowed to do this typecast */ - HttpReply *rep = (HttpReply *) pe->getReply(); // bypass const + HttpReply *rep = new HttpReply; rep->setHeaders(version, HTTP_OK, "Internal marker object", "x-squid-internal/vary", -1, -1, squid_curtime + 100000); vary = mem->getReply()->header.getList(HDR_VARY); @@ -723,21 +722,14 @@ storeSetPublicKey(StoreEntry * e) } #endif - storeSetPublicKey(pe); + pe->replaceHttpReply(rep); - storeBuffer(pe); + storeTimestampsSet(pe); - /* TODO: remove this when the metadata is separated */ - { - Packer p; - packerToStoreInit(&p, pe); - pe->getReply()->packHeadersInto(&p); - packerClean(&p); - } + pe->makePublic(); - storeBufferFlush(pe); - storeTimestampsSet(pe); pe->complete(); + pe->unlock(); }