]> git.ipfire.org Git - thirdparty/squid.git/blame - src/neighbors.h
Boilerplate: update copyright blurbs on src/
[thirdparty/squid.git] / src / neighbors.h
CommitLineData
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
18class HttpRequest;
09bbee4c 19class HttpRequestMethod;
a3c6762c 20class CachePeer;
fc54b8d2
FC
21class StoreEntry;
22
001d55dc
FC
23CachePeer *getFirstPeer(void);
24CachePeer *getFirstUpParent(HttpRequest *);
25CachePeer *getNextPeer(CachePeer *);
26CachePeer *getSingleParent(HttpRequest *);
27int neighborsCount(HttpRequest *);
28int neighborsUdpPing(HttpRequest *,
e4a14600
A
29 StoreEntry *,
30 IRCB * callback,
31 void *data,
32 int *exprep,
33 int *timeout);
001d55dc 34void neighborAddAcl(const char *, const char *);
fc54b8d2 35
001d55dc
FC
36void neighborsUdpAck(const cache_key *, icp_common_t *, const Ip::Address &);
37void neighborAdd(const char *, const char *, int, int, int, int, int);
38void neighbors_init(void);
fc54b8d2 39#if USE_HTCP
001d55dc 40void neighborsHtcpClear(StoreEntry *, const char *, HttpRequest *, const HttpRequestMethod &, htcp_clr_reason);
fc54b8d2 41#endif
001d55dc
FC
42CachePeer *peerFindByName(const char *);
43CachePeer *peerFindByNameAndPort(const char *, unsigned short);
44CachePeer *getDefaultParent(HttpRequest * request);
45CachePeer *getRoundRobinParent(HttpRequest * request);
46CachePeer *getWeightedRoundRobinParent(HttpRequest * request);
47void peerClearRRStart(void);
48void peerClearRR(void);
49lookup_t peerDigestLookup(CachePeer * p, HttpRequest * request);
50CachePeer *neighborsDigestSelect(HttpRequest * request);
51void peerNoteDigestLookup(HttpRequest * request, CachePeer * p, lookup_t lookup);
52void peerNoteDigestGone(CachePeer * p);
53int neighborUp(const CachePeer * e);
54CBDUNL peerDestroy;
55const char *neighborTypeStr(const CachePeer * e);
56peer_t neighborType(const CachePeer *, const HttpRequest *);
57void peerConnectFailed(CachePeer *);
58void peerConnectSucceded(CachePeer *);
59void dump_peer_options(StoreEntry *, CachePeer *);
60int peerHTTPOkay(const CachePeer *, HttpRequest *);
fc54b8d2 61
e8dca475
CT
62/// Whether we can open new connections to the peer (e.g., despite max-conn)
63bool peerCanOpenMore(const CachePeer *p);
64/// Whether the peer has idle or standby connections that can be used now
65bool peerHasConnAvailable(const CachePeer *p);
66/// Notifies peer of an associated connection closure.
67void peerConnClosed(CachePeer *p);
68
001d55dc 69CachePeer *whichPeer(const Ip::Address &from);
fc54b8d2
FC
70
71#endif /* SQUID_NEIGHBORS_H_ */