/*
- * Copyright (C) 1996-2014 The Squid Software Foundation and contributors
+ * Copyright (C) 1996-2021 The Squid Software Foundation and contributors
*
* Squid software is distributed under GPLv2+ license and includes
* contributions from numerous individuals and organizations.
#include "HttpRequest.h"
#include "mgr/Registration.h"
#include "neighbors.h"
+#include "PeerSelectState.h"
#include "SquidConfig.h"
#include "Store.h"
*/
K = n_sourcehash_peers;
- P_last = 0.0; /* Empty P_0 */
+ P_last = 0.0; /* Empty P_0 */
- Xn = 1.0; /* Empty starting point of X_1 * X_2 * ... * X_{x-1} */
+ Xn = 1.0; /* Empty starting point of X_1 * X_2 * ... * X_{x-1} */
- X_last = 0.0; /* Empty X_0, nullifies the first pow statement */
+ X_last = 0.0; /* Empty X_0, nullifies the first pow statement */
for (k = 1; k <= K; ++k) {
double Kk1 = (double) (K - k + 1);
}
CachePeer *
-peerSourceHashSelectParent(HttpRequest * request)
+peerSourceHashSelectParent(PeerSelector *ps)
{
int k;
const char *c;
if (n_sourcehash_peers == 0)
return NULL;
+ assert(ps);
+ HttpRequest *request = ps->request;
+
key = request->client_addr.toStr(ntoabuf, sizeof(ntoabuf));
/* calculate hash key */
debugs(39, 3, "peerSourceHashSelectParent: " << tp->name << " combined_hash " << combined_hash <<
" score " << std::setprecision(0) << score);
- if ((score > high_score) && peerHTTPOkay(tp, request)) {
+ if ((score > high_score) && peerHTTPOkay(tp, ps)) {
p = tp;
high_score = score;
}
sumfetches ? (double) p->stats.fetches / sumfetches : -1.0);
}
}
+