]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Make packerClean() the destructor actions for Packer class
authorAmos Jeffries <squid3@treenet.co.nz>
Mon, 2 Mar 2015 15:33:49 +0000 (07:33 -0800)
committerAmos Jeffries <squid3@treenet.co.nz>
Mon, 2 Mar 2015 15:33:49 +0000 (07:33 -0800)
18 files changed:
src/HttpHeader.cc
src/HttpMsg.cc
src/HttpReply.cc
src/HttpRequest.cc
src/Packer.cc
src/Packer.h
src/adaptation/ecap/MessageRep.cc
src/adaptation/icap/ModXact.cc
src/client_side.cc
src/errorpage.cc
src/htcp.cc
src/http.cc
src/servers/FtpServer.cc
src/store.cc
src/tests/testRock.cc
src/tests/testUfs.cc
src/tools.cc
src/tunnel.cc

index ad433fb9360906a4099de89b19460231df41e253..0095eaf31a28ab3207f744fc624b484daae6ef61 100644 (file)
@@ -1242,7 +1242,6 @@ HttpHeader::putCc(const HttpHdrCc * cc)
     /* put */
     addEntry(new HttpHeaderEntry(HDR_CACHE_CONTROL, NULL, mb.buf));
     /* cleanup */
-    packerClean(&p);
     mb.clean();
 }
 
@@ -1261,7 +1260,6 @@ HttpHeader::putContRange(const HttpHdrContRange * cr)
     /* put */
     addEntry(new HttpHeaderEntry(HDR_CONTENT_RANGE, NULL, mb.buf));
     /* cleanup */
-    packerClean(&p);
     mb.clean();
 }
 
@@ -1280,7 +1278,6 @@ HttpHeader::putRange(const HttpHdrRange * range)
     /* put */
     addEntry(new HttpHeaderEntry(HDR_RANGE, NULL, mb.buf));
     /* cleanup */
-    packerClean(&p);
     mb.clean();
 }
 
@@ -1299,7 +1296,6 @@ HttpHeader::putSc(HttpHdrSc *sc)
     /* put */
     addEntry(new HttpHeaderEntry(HDR_SURROGATE_CONTROL, NULL, mb.buf));
     /* cleanup */
-    packerClean(&p);
     mb.clean();
 }
 
index d995e3c5f3b7448ad68fc55a79761ab4cfe2f954..59185ebb2247d417ff79d57052f3916e83a7c90c 100644 (file)
@@ -338,6 +338,5 @@ void HttpMsg::firstLineBuf(MemBuf& mb)
     Packer p;
     packerToMemInit(&p, &mb);
     packFirstLineInto(&p, true);
-    packerClean(&p);
 }
 
index d403616e4dfe0ebadda4d9baaa918ccaac66353f..22a2ab0f68ee55b9db6ce5006629b690aaaaf116 100644 (file)
@@ -132,7 +132,6 @@ HttpReply::pack()
     mb->init();
     packerToMemInit(&p, mb);
     packInto(&p);
-    packerClean(&p);
     return mb;
 }
 
index 17abf97b9365716208fe615f09dd5db48c76d8ac..9f60ad7cc815594920775f2a852dd204387c8958 100644 (file)
@@ -369,7 +369,6 @@ HttpRequest::swapOut(StoreEntry * e)
     assert(e);
     packerToStoreInit(&p, e);
     pack(&p);
-    packerClean(&p);
 }
 
 /* packs request-line and headers, appends <crlf> terminator */
index 6b78bd573ad94cbf1a06f0729f3dd5ae3be974c9..a39b6303feff1d905470c82026e410ad50974a99 100644 (file)
@@ -104,19 +104,15 @@ packerToMemInit(Packer * p, MemBuf * mb)
     p->real_handler = mb;
 }
 
-/* call this when you are done */
-void
-packerClean(Packer * p)
+Packer::~Packer()
 {
-    assert(p);
-
-    if (p->append == (append_f) store_append && p->real_handler)
-        static_cast<StoreEntry*>(p->real_handler)->flush();
+    if (append == (append_f) store_append && real_handler)
+        static_cast<StoreEntry*>(real_handler)->flush();
 
     /* it is not really necessary to do this, but, just in case... */
-    p->append = NULL;
-    p->packer_vprintf = NULL;
-    p->real_handler = NULL;
+    append = NULL;
+    packer_vprintf = NULL;
+    real_handler = NULL;
 }
 
 void
index 6737c596c81de272068e65c4dfd4eece7b08ebc9..0cba84687600ac7a74dcb81f6e8b4aecc0921787 100644 (file)
@@ -23,13 +23,14 @@ class Packer
 {
 
 public:
+    virtual ~Packer();
+
     /* protected, use interface functions instead */
     append_f append;
     vprintf_f packer_vprintf;
     void *real_handler;     /* first parameter to real append and vprintf */
 };
 
-void packerClean(Packer * p);
 void packerAppend(Packer * p, const char *buf, int size);
 void packerPrintf(Packer * p, const char *fmt,...) PRINTF_FORMAT_ARG2;
 
index 257a3c491801937b815c16d4632a841f1e00f59b..8e5feeada1cb244dcf6c1d3e42fac4a3f2bf771b 100644 (file)
@@ -95,7 +95,6 @@ Adaptation::Ecap::HeaderRep::image() const
     Packer p;
     packerToMemInit(&p, &mb);
     theMessage.packInto(&p, true);
-    packerClean(&p);
     return Area::FromTempBuffer(mb.content(), mb.contentSize());
 }
 
index d8a3b4106c381c74ff522c9df5a520ee552d74c1..dfc72ba4aa2e715a0bf481a138e332156be34fdb 100644 (file)
@@ -1326,7 +1326,6 @@ void Adaptation::Icap::ModXact::finalizeLogInfo()
         reply_->header.packInto(&p);
         al.headers.reply = xstrdup(mb.buf);
 
-        packerClean(&p);
         mb.clean();
     }
     prepareLogWithRequestDetails(adapted_request_, alep);
@@ -1579,7 +1578,6 @@ void Adaptation::Icap::ModXact::packHead(MemBuf &httpBuf, const HttpMsg *head)
     Packer p;
     packerToMemInit(&p, &httpBuf);
     head->packInto(&p, true);
-    packerClean(&p);
 }
 
 // decides whether to offer a preview and calculates its size
index 613678f339e12a2fc05989217329215ff29732a5..a4879216346a62a817f9e1f88cd1310b370e2d13 100644 (file)
@@ -518,17 +518,17 @@ prepareLogWithRequestDetails(HttpRequest * request, AccessLogEntry::Pointer &aLo
     assert(aLogEntry != NULL);
 
     if (Config.onoff.log_mime_hdrs) {
-        Packer p;
         MemBuf mb;
         mb.init();
-        packerToMemInit(&p, &mb);
-        request->header.packInto(&p);
+        Packer pa;
+        packerToMemInit(&pa, &mb);
+        request->header.packInto(&pa);
         //This is the request after adaptation or redirection
         aLogEntry->headers.adapted_request = xstrdup(mb.buf);
 
         // the virgin request is saved to aLogEntry->request
         if (aLogEntry->request) {
-            packerClean(&p);
+            Packer p;
             mb.reset();
             packerToMemInit(&p, &mb);
             aLogEntry->request->header.packInto(&p);
@@ -538,7 +538,7 @@ prepareLogWithRequestDetails(HttpRequest * request, AccessLogEntry::Pointer &aLo
 #if USE_ADAPTATION
         const Adaptation::History::Pointer ah = request->adaptLogHistory();
         if (ah != NULL) {
-            packerClean(&p);
+            Packer p;
             mb.reset();
             packerToMemInit(&p, &mb);
             ah->lastMeta.packInto(&p);
@@ -546,7 +546,6 @@ prepareLogWithRequestDetails(HttpRequest * request, AccessLogEntry::Pointer &aLo
         }
 #endif
 
-        packerClean(&p);
         mb.clean();
     }
 
@@ -1077,8 +1076,6 @@ clientPackRangeHdr(const HttpReply * rep, const HttpHdrRangeSpec * spec, String
 
     hdr.packInto(&p);
 
-    packerClean(&p);
-
     hdr.clean();
 
     /* append <crlf> (we packed a header, not a reply) */
index 1c68a91ecf27a2bb0d9b6b32d1f6cfa3e9cf687f..812464379ed7bebe92c5b92d4656c598dcea0f83 100644 (file)
@@ -752,7 +752,6 @@ ErrorState::Dump(MemBuf * mb)
                    request->http_ver.major, request->http_ver.minor);
         packerToMemInit(&pck, &str);
         request->header.packInto(&pck);
-        packerClean(&pck);
     }
 
     str.Printf("\r\n");
@@ -972,7 +971,6 @@ ErrorState::Convert(char token, bool building_deny_info_url, bool allowRecursion
                       request->http_ver.major, request->http_ver.minor);
             packerToMemInit(&pck, &mb);
             request->header.packInto(&pck, true); //hide authorization data
-            packerClean(&pck);
         } else if (request_hdrs) {
             p = request_hdrs;
         } else {
index 4c1dbe676a087300772b007914eeaa4b30af48f7..ad6d912c364c809f625974ce854db5290843e010 100644 (file)
@@ -849,8 +849,6 @@ htcpTstReply(htcpDataHeader * dhdr, StoreEntry * e, htcpSpecifier * spec, Ip::Ad
 {
     static char pkt[8192];
     HttpHeader hdr(hoHtcpReply);
-    MemBuf mb;
-    Packer p;
     ssize_t pktlen;
 
     htcpStuff stuff(dhdr->msg_id, HTCP_TST, RR_RESPONSE, 0);
@@ -858,7 +856,9 @@ htcpTstReply(htcpDataHeader * dhdr, StoreEntry * e, htcpSpecifier * spec, Ip::Ad
     debugs(31, 3, "htcpTstReply: response = " << stuff.response);
 
     if (spec) {
+        MemBuf mb;
         mb.init();
+        Packer p;
         packerToMemInit(&p, &mb);
         stuff.S.method = spec->method;
         stuff.S.uri = spec->uri;
@@ -915,7 +915,6 @@ htcpTstReply(htcpDataHeader * dhdr, StoreEntry * e, htcpSpecifier * spec, Ip::Ad
         debugs(31, 3, "htcpTstReply: cache_hdrs = {" << stuff.D.cache_hdrs << "}");
         mb.clean();
         hdr.clean();
-        packerClean(&p);
     }
 
     pktlen = htcpBuildPacket(pkt, sizeof(pkt), &stuff);
@@ -1519,8 +1518,6 @@ htcpQuery(StoreEntry * e, HttpRequest * req, CachePeer * p)
     ssize_t pktlen;
     char vbuf[32];
     HttpHeader hdr(hoRequest);
-    Packer pa;
-    MemBuf mb;
     HttpStateFlags flags;
 
     if (!Comm::IsConnOpen(htcpIncomingConn))
@@ -1537,11 +1534,12 @@ htcpQuery(StoreEntry * e, HttpRequest * req, CachePeer * p)
     stuff.S.uri = (char *) e->url();
     stuff.S.version = vbuf;
     HttpStateData::httpBuildRequestHeader(req, e, NULL, &hdr, flags);
+    MemBuf mb;
     mb.init();
+    Packer pa;
     packerToMemInit(&pa, &mb);
     hdr.packInto(&pa);
     hdr.clean();
-    packerClean(&pa);
     stuff.S.req_hdrs = mb.buf;
     pktlen = htcpBuildPacket(pkt, sizeof(pkt), &stuff);
     mb.clean();
@@ -1571,7 +1569,6 @@ htcpClear(StoreEntry * e, const char *uri, HttpRequest * req, const HttpRequestM
     ssize_t pktlen;
     char vbuf[32];
     HttpHeader hdr(hoRequest);
-    Packer pa;
     MemBuf mb;
     HttpStateFlags flags;
 
@@ -1601,10 +1598,10 @@ htcpClear(StoreEntry * e, const char *uri, HttpRequest * req, const HttpRequestM
     if (reason != HTCP_CLR_INVALIDATION) {
         HttpStateData::httpBuildRequestHeader(req, e, NULL, &hdr, flags);
         mb.init();
+        Packer pa;
         packerToMemInit(&pa, &mb);
         hdr.packInto(&pa);
         hdr.clean();
-        packerClean(&pa);
         stuff.S.req_hdrs = mb.buf;
     } else {
         stuff.S.req_hdrs = NULL;
index f5a9b3539735c5e53405cbfcf5a11f8f96bd12bf..6c16676a19810b615836532b9c4386b8ca027539 100644 (file)
@@ -2195,7 +2195,6 @@ HttpStateData::buildRequestPrefix(MemBuf * mb)
         packerToMemInit(&p, mb);
         hdr.packInto(&p);
         hdr.clean();
-        packerClean(&p);
     }
     /* append header terminator */
     mb->append(crlf, 2);
index 42f3329fe7ab5de01b5e4cccdc001e6f1dfbfe5c..b6e0e8cd2fe2546e1f3075ef09325f40d438650d 100644 (file)
@@ -1290,7 +1290,6 @@ Ftp::Server::handleRequest(HttpRequest *request)
         mb.init();
         packerToMemInit(&p, &mb);
         request->pack(&p);
-        packerClean(&p);
 
         debugs(9, 2, "FTP Client " << clientConnection);
         debugs(9, 2, "FTP Client REQUEST:\n---------\n" << mb.buf <<
index 89629dec1015daa7c8a75cfbdb0b6fe641547573..ae51d1ec65568fe3b856db41a723723d71a48956 100644 (file)
@@ -1898,8 +1898,6 @@ StoreEntry::startWriting()
     EBIT_CLR(flags, ENTRY_FWD_HDR_WAIT);
 
     rep->body.packInto(&p);
-
-    packerClean(&p);
 }
 
 char const *
index ce4f57885b1d001f5c293a46f49a25d625af36ff..61ab8962f0e46915af2b95cb174d04895fb73b80 100644 (file)
@@ -206,7 +206,6 @@ testRock::addEntry(const int i)
         Packer p;
         packerToStoreInit(&p, pe);
         pe->getReply()->packHeadersInto(&p);
-        packerClean(&p);
     }
 
     pe->flush();
index a21ee007be86cb1d0e181a855bacbb397c36583b..c2e142de6217814b45d1d34e449d695140c415e4 100644 (file)
@@ -157,7 +157,6 @@ testUfs::testUfsSearch()
             Packer p;
             packerToStoreInit(&p, pe);
             pe->getReply()->packHeadersInto(&p);
-            packerClean(&p);
         }
 
         pe->flush();
index 95634a81cacf2fcfa8ea129acb50e174c3ede29b..a027414aa5cb5081e0ae315843f3687640f66e74 100644 (file)
@@ -978,7 +978,6 @@ debugObj(int section, int level, const char *label, void *obj, ObjPackMethod pm)
     packerToMemInit(&p, &mb);
     (*pm) (obj, &p);
     debugs(section, level, "" << label << "" << mb.buf << "");
-    packerClean(&p);
     mb.clean();
 }
 
index 485de198ff47ee947c9cf5b9c44eaa318c9f2e5a..9d6ec5bf612f03ed4941a365aac2dfe113e9ffc3 100644 (file)
@@ -1073,7 +1073,6 @@ tunnelRelayConnectRequest(const Comm::ConnectionPointer &srv, void *data)
     packerToMemInit(&p, &mb);
     hdr_out.packInto(&p);
     hdr_out.clean();
-    packerClean(&p);
     mb.append("\r\n", 2);
 
     debugs(11, 2, "Tunnel Server REQUEST: " << tunnelState->server.conn << ":\n----------\n" <<