]>
Commit | Line | Data |
---|---|---|
fc54b8d2 | 1 | /* |
bbc27441 | 2 | * Copyright (C) 1996-2014 The Squid Software Foundation and contributors |
fc54b8d2 | 3 | * |
bbc27441 AJ |
4 | * Squid software is distributed under GPLv2+ license and includes |
5 | * contributions from numerous individuals and organizations. | |
6 | * Please see the COPYING and CONTRIBUTORS files for details. | |
fc54b8d2 FC |
7 | */ |
8 | ||
bbc27441 AJ |
9 | /* DEBUG: section 15 Neighbor Routines */ |
10 | ||
fc54b8d2 FC |
11 | #ifndef SQUID_NEIGHBORS_H_ |
12 | #define SQUID_NEIGHBORS_H_ | |
13 | ||
14 | #include "enums.h" | |
09bbee4c | 15 | #include "ICP.h" |
fc54b8d2 | 16 | #include "lookup_t.h" |
fc54b8d2 FC |
17 | |
18 | class HttpRequest; | |
09bbee4c | 19 | class HttpRequestMethod; |
a3c6762c | 20 | class CachePeer; |
fc54b8d2 FC |
21 | class StoreEntry; |
22 | ||
001d55dc FC |
23 | CachePeer *getFirstPeer(void); |
24 | CachePeer *getFirstUpParent(HttpRequest *); | |
25 | CachePeer *getNextPeer(CachePeer *); | |
26 | CachePeer *getSingleParent(HttpRequest *); | |
27 | int neighborsCount(HttpRequest *); | |
28 | int neighborsUdpPing(HttpRequest *, | |
e4a14600 A |
29 | StoreEntry *, |
30 | IRCB * callback, | |
31 | void *data, | |
32 | int *exprep, | |
33 | int *timeout); | |
001d55dc | 34 | void neighborAddAcl(const char *, const char *); |
fc54b8d2 | 35 | |
001d55dc FC |
36 | void neighborsUdpAck(const cache_key *, icp_common_t *, const Ip::Address &); |
37 | void neighborAdd(const char *, const char *, int, int, int, int, int); | |
38 | void neighbors_init(void); | |
fc54b8d2 | 39 | #if USE_HTCP |
001d55dc | 40 | void neighborsHtcpClear(StoreEntry *, const char *, HttpRequest *, const HttpRequestMethod &, htcp_clr_reason); |
fc54b8d2 | 41 | #endif |
001d55dc FC |
42 | CachePeer *peerFindByName(const char *); |
43 | CachePeer *peerFindByNameAndPort(const char *, unsigned short); | |
44 | CachePeer *getDefaultParent(HttpRequest * request); | |
45 | CachePeer *getRoundRobinParent(HttpRequest * request); | |
46 | CachePeer *getWeightedRoundRobinParent(HttpRequest * request); | |
47 | void peerClearRRStart(void); | |
48 | void peerClearRR(void); | |
49 | lookup_t peerDigestLookup(CachePeer * p, HttpRequest * request); | |
50 | CachePeer *neighborsDigestSelect(HttpRequest * request); | |
51 | void peerNoteDigestLookup(HttpRequest * request, CachePeer * p, lookup_t lookup); | |
52 | void peerNoteDigestGone(CachePeer * p); | |
53 | int neighborUp(const CachePeer * e); | |
54 | CBDUNL peerDestroy; | |
55 | const char *neighborTypeStr(const CachePeer * e); | |
56 | peer_t neighborType(const CachePeer *, const HttpRequest *); | |
57 | void peerConnectFailed(CachePeer *); | |
58 | void peerConnectSucceded(CachePeer *); | |
59 | void dump_peer_options(StoreEntry *, CachePeer *); | |
60 | int peerHTTPOkay(const CachePeer *, HttpRequest *); | |
fc54b8d2 | 61 | |
e8dca475 CT |
62 | /// Whether we can open new connections to the peer (e.g., despite max-conn) |
63 | bool peerCanOpenMore(const CachePeer *p); | |
64 | /// Whether the peer has idle or standby connections that can be used now | |
65 | bool peerHasConnAvailable(const CachePeer *p); | |
66 | /// Notifies peer of an associated connection closure. | |
67 | void peerConnClosed(CachePeer *p); | |
68 | ||
001d55dc | 69 | CachePeer *whichPeer(const Ip::Address &from); |
fc54b8d2 FC |
70 | |
71 | #endif /* SQUID_NEIGHBORS_H_ */ | |
f53969cc | 72 |