From: Amos Jeffries Date: Sat, 2 Oct 2010 15:40:25 +0000 (+1300) Subject: Merge from trunk X-Git-Tag: take08~55^2~124^2~51 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d8ea93e37ad4449f71c3a1237f879b858a83510d;p=thirdparty%2Fsquid.git Merge from trunk --- d8ea93e37ad4449f71c3a1237f879b858a83510d diff --cc src/errorpage.cc index 7c4205e120,bcc3e2e966..2b238d6eff --- a/src/errorpage.cc +++ b/src/errorpage.cc @@@ -457,9 -456,11 +457,9 @@@ errorSend(const Comm::ConnectionPointe err->flags.flag_cbdata = 1; rep = err->BuildHttpReply(); - - comm_write_mbuf(conn, rep->pack(), errorSendComplete, err); -- + MemBuf *mb = rep->pack(); - comm_write_mbuf(fd, mb, errorSendComplete, err); ++ comm_write_mbuf(conn, mb, errorSendComplete, err); + delete mb; - delete rep; } diff --cc src/helper.cc index 2e0b5883c9,c159c35756..10251bb4f4 --- a/src/helper.cc +++ b/src/helper.cc @@@ -687,23 -687,8 +687,8 @@@ helperServerFree(int fd, void *data srv->writebuf = NULL; } - for (i = 0; i < concurrency; i++) { - if ((r = srv->requests[i])) { - void *cbdata; - - if (cbdataReferenceValidDone(r->data, &cbdata)) - r->callback(cbdata, NULL); - - helperRequestFree(r); - - srv->requests[i] = NULL; - } - } - - safe_free(srv->requests); - - if (srv->wfd != srv->rfd && srv->wfd != -1) - comm_close(srv->wfd); + if (Comm::IsConnOpen(srv->writePipe)) + srv->closeWritePipeSafely(); dlinkDelete(&srv->link, &hlp->servers); @@@ -749,20 -748,9 +748,9 @@@ helperStatefulServerFree(int fd, void * #endif - if ((r = srv->request)) { - void *cbdata; - - if (cbdataReferenceValidDone(r->data, &cbdata)) - r->callback(cbdata, srv, NULL); - - helperStatefulRequestFree(r); - - srv->request = NULL; - } - /* TODO: walk the local queue of requests and carry them all out */ - if (srv->wfd != srv->rfd && srv->wfd != -1) - comm_close(srv->wfd); + if (Comm::IsConnOpen(srv->writePipe)) + srv->closeWritePipeSafely(); dlinkDelete(&srv->link, &hlp->servers); diff --cc src/http.cc index 08d676e848,772f92cf09..f043d9dd0e --- a/src/http.cc +++ b/src/http.cc @@@ -2126,10 -2130,10 +2129,9 @@@ HttpStateData::sendRequest( mb.init(); request->peer_host=_peer?_peer->host:NULL; - buildRequestPrefix(request, orig_request, entry, &mb, flags); + buildRequestPrefix(request, orig_request, entry, &mb); - debugs(11, 6, "httpSendRequest: FD " << fd << ":\n" << mb.buf); - comm_write_mbuf(fd, &mb, requestSender); - + debugs(11, 6, HERE << serverConnection << ":\n" << mb.buf); + comm_write_mbuf(serverConnection, &mb, requestSender); - return true; } @@@ -2244,13 -2249,12 +2246,12 @@@ voi HttpStateData::doneSendingRequestBody() { ServerStateData::doneSendingRequestBody(); - debugs(11,5, HERE << "doneSendingRequestBody: FD " << fd); + debugs(11,5, HERE << serverConnection); // do we need to write something after the last body byte? - const bool chunked = request->header.chunked(); - if (chunked && finishingChunkedRequest()) + if (flags.chunked_request && finishingChunkedRequest()) return; - if (!chunked && finishingBrokenPost()) + if (!flags.chunked_request && finishingBrokenPost()) return; sendComplete(); diff --cc src/http.h index 97b4a393d6,c0f7d051b2..f838e2acc8 --- a/src/http.h +++ b/src/http.h @@@ -52,9 -51,9 +52,9 @@@ public HttpRequest * orig_request, StoreEntry * entry, HttpHeader * hdr_out, - http_state_flags flags); + const http_state_flags flags); - virtual int dataDescriptor() const; + virtual const Comm::ConnectionPointer & dataDescriptor() const; /* should be private */ bool sendRequest(); void processReplyHeader(); diff --cc src/main.cc index 7ba9d9bc89,0865e3c785..2b0848677b --- a/src/main.cc +++ b/src/main.cc @@@ -62,27 -73,13 +62,28 @@@ #if defined(USE_SELECT) || defined(USE_SELECT_WIN32) #include "comm_select.h" #endif -#include "SquidTime.h" -#include "SwapDir.h" +#include "ConfigParser.h" ++#include "CpuAffinity.h" +#include "DiskIO/DiskIOModule.h" +#include "errorpage.h" +#if USE_SQUID_ESI +#include "esi/Module.h" +#endif +#include "event.h" +#include "EventLoop.h" +#include "ExternalACL.h" #include "forward.h" -#include "MemPool.h" +#include "fs/Module.h" +#include "htcp.h" +#include "HttpReply.h" #include "icmp/IcmpSquid.h" #include "icmp/net_db.h" - +#include "ICP.h" +#include "ident/Ident.h" +#include "ip/tools.h" +#include "ipc/Coordinator.h" +#include "ipc/Kids.h" +#include "ipc/Strand.h" #if USE_LOADABLE_MODULES #include "LoadableModules.h" #endif