/*
- * Copyright (C) 1996-2016 The Squid Software Foundation and contributors
+ * Copyright (C) 1996-2017 The Squid Software Foundation and contributors
*
* Squid software is distributed under GPLv2+ license and includes
* contributions from numerous individuals and organizations.
#include "FwdState.h"
#include "globals.h"
#include "HttpRequest.h"
+#include "MasterXaction.h"
#include "neighbors.h"
#include "pconn.h"
#include "PeerPoolMgr.h"
{
AsyncJob::start();
+ const MasterXaction::Pointer mx = new MasterXaction(XactionInitiator::initPeerPool);
// ErrorState, getOutgoingAddress(), and other APIs may require a request.
// We fake one. TODO: Optionally send this request to peers?
- request = new HttpRequest(Http::METHOD_OPTIONS, AnyP::PROTO_HTTP, "http", "*");
+ request = new HttpRequest(Http::METHOD_OPTIONS, AnyP::PROTO_HTTP, "http", "*", mx);
request->url.host(peer->host);
checkpoint("peer initialized");
securer = asyncCall(48, 4, "PeerPoolMgr::handleSecuredPeer",
MyAnswerDialer(this, &PeerPoolMgr::handleSecuredPeer));
- const int peerTimeout = peer->connect_timeout > 0 ?
- peer->connect_timeout : Config.Timeout.peer_connect;
+ const int peerTimeout = peerConnectTimeout(peer);
const int timeUsed = squid_curtime - params.conn->startTime();
// Use positive timeout when less than one second is left for conn.
- const int timeLeft = max(1, (peerTimeout - timeUsed));
+ const int timeLeft = positiveTimeout(peerTimeout - timeUsed);
auto *connector = new Security::BlindPeerConnector(request, params.conn, securer, nullptr, timeLeft);
AsyncJob::Start(connector); // will call our callback
return;
getOutgoingAddress(request.getRaw(), conn);
GetMarkingsToServer(request.getRaw(), *conn);
- const int ctimeout = peer->connect_timeout > 0 ?
- peer->connect_timeout : Config.Timeout.peer_connect;
+ const int ctimeout = peerConnectTimeout(peer);
typedef CommCbMemFunT<PeerPoolMgr, CommConnectCbParams> Dialer;
opener = JobCallback(48, 5, Dialer, this, PeerPoolMgr::handleOpenedConnection);
Comm::ConnOpener *cs = new Comm::ConnOpener(conn, opener, ctimeout);