ConnStateData *pinned_connection = request->pinnedConnection();
debugs(17,7, "pinned peer connection: " << pinned_connection);
// pinned_connection may become nil after a pconn race
- if (pinned_connection) {
- serverConn = pinned_connection->borrowPinnedConnection(request, serverDestinations[0]->getPeer());
- if (Comm::IsConnOpen(serverConn)) {
- pinned_connection->stopPinnedConnectionMonitoring();
- flags.connected_okay = true;
- ++n_tries;
- request->flags.pinned = true;
- if (pinned_connection->pinnedAuth())
- request->flags.auth = true;
+ serverConn = pinned_connection ? pinned_connection->borrowPinnedConnection(request, serverDestinations[0]->getPeer()) : nullptr;
+ if (Comm::IsConnOpen(serverConn)) {
+ flags.connected_okay = true;
+ ++n_tries;
+ request->flags.pinned = true;
- closeHandler = comm_add_close_handler(serverConn->fd, fwdServerClosedWrapper, this);
+ if (pinned_connection->pinnedAuth())
+ request->flags.auth = true;
- syncWithServerConn(pinned_connection->pinning.host);
+ closeHandler = comm_add_close_handler(serverConn->fd, fwdServerClosedWrapper, this);
- // the server may close the pinned connection before this request
- pconnRace = racePossible;
- dispatch();
- return;
- }
+ syncWithServerConn(pinned_connection->pinning.host);
+
+ // the server may close the pinned connection before this request
+ pconnRace = racePossible;
+ dispatch();
+ return;
+ }
- } else
- serverConn = nullptr;
// Pinned connection failure.
debugs(17,2,HERE << "Pinned connection failed: " << pinned_connection);