]> git.ipfire.org Git - thirdparty/squid.git/blobdiff - src/peer_sourcehash.cc
Source Format Enforcement (#763)
[thirdparty/squid.git] / src / peer_sourcehash.cc
index 52bdeb33a47769ffc3e4542d77910bac061f0f15..c6d351c47d30fc54cd2201418dddf6d71ac1964e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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.
@@ -13,6 +13,7 @@
 #include "HttpRequest.h"
 #include "mgr/Registration.h"
 #include "neighbors.h"
+#include "PeerSelectState.h"
 #include "SquidConfig.h"
 #include "Store.h"
 
@@ -115,11 +116,11 @@ peerSourceHashInit(void)
      */
     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);
@@ -141,7 +142,7 @@ peerSourceHashRegisterWithCacheManager(void)
 }
 
 CachePeer *
-peerSourceHashSelectParent(HttpRequest * request)
+peerSourceHashSelectParent(PeerSelector *ps)
 {
     int k;
     const char *c;
@@ -157,6 +158,9 @@ peerSourceHashSelectParent(HttpRequest * request)
     if (n_sourcehash_peers == 0)
         return NULL;
 
+    assert(ps);
+    HttpRequest *request = ps->request;
+
     key = request->client_addr.toStr(ntoabuf, sizeof(ntoabuf));
 
     /* calculate hash key */
@@ -175,7 +179,7 @@ peerSourceHashSelectParent(HttpRequest * request)
         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;
         }
@@ -210,3 +214,4 @@ peerSourceHashCachemgr(StoreEntry * sentry)
                           sumfetches ? (double) p->stats.fetches / sumfetches : -1.0);
     }
 }
+