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;
}
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);
#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);
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;
}
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();
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();
#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