/// server connection is still in use
bool usingDestination() const;
+ void resetStepFlags();
+
/// details of the "last tunneling attempt" failure (if it failed)
ErrorState *savedError = nullptr;
closePendingConnection(conn, "connection preparation exception");
if (!savedError)
saveError(new ErrorState(ERR_CANNOT_FORWARD, Http::scInternalServerError, request.getRaw(), al));
+ resetStepFlags();
retryOrBail(stepDescription);
}
}
return securingConnectionToPeer || waitingForConnectExchange || Comm::IsConnOpen(server.conn);
}
+void
+TunnelStateData::resetStepFlags()
+{
+ assert(!Comm::IsConnOpen(server.conn));
+ securingConnectionToPeer = false;
+ waitingForConnectExchange = false;
+}
+
/// remembers an error to be used if there will be no more connection attempts
void
TunnelStateData::saveError(ErrorState *error)