delete http;
}
-void
-ConnStateData::freeAllContexts()
-{
- ClientSocketContext::Pointer context;
-
- while ((context = getCurrentContext()).getRaw() != NULL) {
- assert(getCurrentContext() !=
- getCurrentContext()->next);
- context->connIsFinished();
- assert (context != currentobject);
- }
-}
-
/// propagates abort event to all contexts
void
ConnStateData::notifyAllContexts(int xerrno)
flags.readMore = false;
DeregisterRunner(this);
clientdbEstablished(clientConnection->remote, -1); /* decrement */
- freeAllContexts();
+ pipeline.terminateAll(0);
unpinConnection(true);
void
ConnStateData::getSslContextStart()
{
- freeAllContexts();
- /* careful: freeAllContexts() above frees request, host, etc. */
+ // XXX starting SSL with a pipeline of requests still waiting for non-SSL replies?
+ assert(pipeline.count() < 2); // the CONNECT is okay for now. Anything else is a bug.
+ pipeline.terminateAll(0);
+ /* careful: terminateAll(0) above frees request, host, etc. */
if (port->generateHostCertificates) {
Ssl::CertificateProperties certProperties;
virtual bool handleReadData();
virtual void afterClientRead();
- void freeAllContexts();
/// Traffic parsing
bool clientParseRequests();
void readNextRequest();
void ClientSocketContext::noteIoError(const int xerrno) STUB
void ClientSocketContext::writeControlMsg(HttpControlMsg &msg) STUB
-void ConnStateData::freeAllContexts() STUB
void ConnStateData::notifyAllContexts(const int xerrno) STUB
bool ConnStateData::clientParseRequests() STUB_RETVAL(false)
void ConnStateData::readNextRequest() STUB