From: Amos Jeffries Date: Sun, 15 May 2011 08:42:17 +0000 (+1200) Subject: ipcache API shuffle X-Git-Tag: take08~55^2~124^2~13 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=714e68b7113f157e1e7c57fb9bfffc706fb18c6a;p=thirdparty%2Fsquid.git ipcache API shuffle --- diff --git a/src/Makefile.am b/src/Makefile.am index 778c6345fa..c8435a0fde 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -375,6 +375,7 @@ squid_SOURCES = \ internal.cc \ $(IPC_SOURCE) \ ipcache.cc \ + ipcache.h \ $(LEAKFINDERSOURCE) \ list.cc \ lookup_t.h \ diff --git a/src/acl/Asn.cc b/src/acl/Asn.cc index f77fabf83f..83fe1b858c 100644 --- a/src/acl/Asn.cc +++ b/src/acl/Asn.cc @@ -46,6 +46,7 @@ #include "acl/DestinationAsn.h" #include "acl/DestinationIp.h" #include "HttpReply.h" +#include "ipcache.h" #include "forward.h" #include "wordlist.h" diff --git a/src/acl/DestinationDomain.cc b/src/acl/DestinationDomain.cc index 5d765343d1..6527deb1bd 100644 --- a/src/acl/DestinationDomain.cc +++ b/src/acl/DestinationDomain.cc @@ -40,6 +40,7 @@ #include "acl/RegexData.h" #include "acl/DomainData.h" #include "HttpRequest.h" +#include "ipcache.h" DestinationDomainLookup DestinationDomainLookup::instance_; diff --git a/src/acl/DestinationIp.h b/src/acl/DestinationIp.h index b25e532e27..70377f55bc 100644 --- a/src/acl/DestinationIp.h +++ b/src/acl/DestinationIp.h @@ -37,6 +37,7 @@ #define SQUID_ACLDESTINATIONIP_H #include "acl/Checklist.h" #include "acl/Ip.h" +#include "ipcache.h" class DestinationIPLookup : public ACLChecklist::AsyncState { diff --git a/src/client_side_reply.cc b/src/client_side_reply.cc index c9a8a58aa9..a10ff3bff4 100644 --- a/src/client_side_reply.cc +++ b/src/client_side_reply.cc @@ -58,6 +58,7 @@ #include "HttpReply.h" #include "HttpRequest.h" #include "ip/QosConfig.h" +#include "ipcache.h" #include "log/Tokens.h" #include "MemObject.h" #include "SquidTime.h" diff --git a/src/comm/ConnOpener.cc b/src/comm/ConnOpener.cc index b3e952d985..dd1b360f76 100644 --- a/src/comm/ConnOpener.cc +++ b/src/comm/ConnOpener.cc @@ -9,6 +9,7 @@ #include "comm.h" #include "fde.h" #include "icmp/net_db.h" +#include "ipcache.h" #include "SquidTime.h" namespace Comm { diff --git a/src/icmp/net_db.cc b/src/icmp/net_db.cc index a64b96879c..51a26f17dd 100644 --- a/src/icmp/net_db.cc +++ b/src/icmp/net_db.cc @@ -57,6 +57,7 @@ #if USE_ICMP #include "icmp/IcmpSquid.h" +#include "ipcache.h" #include "StoreClient.h" #define NETDB_REQBUF_SZ 4096 diff --git a/src/icp_v2.cc b/src/icp_v2.cc index 2f0aa72daa..d62baea373 100644 --- a/src/icp_v2.cc +++ b/src/icp_v2.cc @@ -52,6 +52,7 @@ #include "ip/Address.h" #include "ip/tools.h" #include "ipc/StartListening.h" +#include "ipcache.h" #include "rfc1738.h" /// dials icpIncomingConnectionOpened call diff --git a/src/ipcache.cc b/src/ipcache.cc index 9e2a660cef..46e16fc3d0 100644 --- a/src/ipcache.cc +++ b/src/ipcache.cc @@ -37,6 +37,7 @@ #include "event.h" #include "ip/Address.h" #include "ip/tools.h" +#include "ipcache.h" #include "mgr/Registration.h" #include "SquidTime.h" #include "Store.h" diff --git a/src/ipcache.h b/src/ipcache.h new file mode 100644 index 0000000000..e98e4d8687 --- /dev/null +++ b/src/ipcache.h @@ -0,0 +1,35 @@ +#ifndef _SQUID_IPCACHE_H +#define _SQUID_IPCACHE_H + +namespace Ip { +class Address; +} + +class DnsLookupDetails; + +typedef struct _ipcache_addrs { + Ip::Address *in_addrs; + unsigned char *bad_mask; + unsigned char count; + unsigned char cur; + unsigned char badcount; +} ipcache_addrs; + +typedef void IPH(const ipcache_addrs *, const DnsLookupDetails &details, void *); + +extern void ipcache_purgelru(void *); +extern void ipcache_nbgethostbyname(const char *name, IPH * handler, void *handlerData); +extern const ipcache_addrs *ipcache_gethostbyname(const char *, int flags); +extern void ipcacheInvalidate(const char *); +extern void ipcacheInvalidateNegative(const char *); +extern void ipcache_init(void); +extern void ipcacheCycleAddr(const char *name, ipcache_addrs *); +extern void ipcacheMarkBadAddr(const char *name, const Ip::Address &); +extern void ipcacheMarkGoodAddr(const char *name, const Ip::Address &); +extern void ipcacheMarkAllGood(const char *name); +extern void ipcacheFreeMemory(void); +extern ipcache_addrs *ipcacheCheckNumeric(const char *name); +extern void ipcache_restart(void); +extern int ipcacheAddEntryFromHosts(const char *name, const char *ipaddr); + +#endif /* _SQUID_IPCACHE_H */ diff --git a/src/multicast.cc b/src/multicast.cc index dcb30c55b2..0d999fe728 100644 --- a/src/multicast.cc +++ b/src/multicast.cc @@ -37,6 +37,7 @@ #include "comm/Connection.h" // XXX: for icpIncomingConn - need to pass it as a generic parameter. #include "ICP.h" +#include "ipcache.h" int mcastSetTtl(int fd, int mcast_ttl) diff --git a/src/neighbors.cc b/src/neighbors.cc index c43510928a..4c3d1cb32f 100644 --- a/src/neighbors.cc +++ b/src/neighbors.cc @@ -40,6 +40,7 @@ #include "HttpRequest.h" #include "ICP.h" #include "ip/tools.h" +#include "ipcache.h" #include "MemObject.h" #include "PeerDigest.h" #include "PeerSelectState.h" diff --git a/src/peer_select.cc b/src/peer_select.cc index a8200c304a..71301da523 100644 --- a/src/peer_select.cc +++ b/src/peer_select.cc @@ -45,6 +45,7 @@ #include "forward.h" #include "SquidTime.h" #include "icmp/net_db.h" +#include "ipcache.h" static struct { int timeouts; diff --git a/src/protos.h b/src/protos.h index e4d457b1ac..c5a61794d5 100644 --- a/src/protos.h +++ b/src/protos.h @@ -323,23 +323,6 @@ extern void wccp2ConnectionOpen(void); extern void wccp2ConnectionClose(void); #endif /* USE_WCCPv2 */ -void ipcache_purgelru(void *); -SQUIDCEXTERN void ipcache_nbgethostbyname(const char *name, - IPH * handler, - void *handlerData); -SQUIDCEXTERN const ipcache_addrs *ipcache_gethostbyname(const char *, int flags); -SQUIDCEXTERN void ipcacheInvalidate(const char *); -SQUIDCEXTERN void ipcacheInvalidateNegative(const char *); -SQUIDCEXTERN void ipcache_init(void); -SQUIDCEXTERN void ipcacheCycleAddr(const char *name, ipcache_addrs *); -SQUIDCEXTERN void ipcacheMarkBadAddr(const char *name, const Ip::Address &); -SQUIDCEXTERN void ipcacheMarkGoodAddr(const char *name, const Ip::Address &); -SQUIDCEXTERN void ipcacheMarkAllGood(const char *name); -SQUIDCEXTERN void ipcacheFreeMemory(void); -SQUIDCEXTERN ipcache_addrs *ipcacheCheckNumeric(const char *name); -SQUIDCEXTERN void ipcache_restart(void); -SQUIDCEXTERN int ipcacheAddEntryFromHosts(const char *name, const char *ipaddr); - SQUIDCEXTERN char *mime_get_header(const char *mime, const char *header); SQUIDCEXTERN char *mime_get_header_field(const char *mime, const char *name, const char *prefix); SQUIDCEXTERN size_t headersEnd(const char *, size_t); @@ -354,6 +337,7 @@ SQUIDCEXTERN char mimeGetTransferMode(const char *fn); SQUIDCEXTERN int mimeGetDownloadOption(const char *fn); SQUIDCEXTERN int mimeGetViewOption(const char *fn); +#include "ipcache.h" SQUIDCEXTERN int mcastSetTtl(int, int); SQUIDCEXTERN IPH mcastJoinGroups; diff --git a/src/send-announce.cc b/src/send-announce.cc index 34f3b29516..085203d523 100644 --- a/src/send-announce.cc +++ b/src/send-announce.cc @@ -38,6 +38,7 @@ #include "event.h" #include "fde.h" #include "ICP.h" +#include "ipcache.h" #include "SquidTime.h" static IPH send_announce; diff --git a/src/structs.h b/src/structs.h index c0ed96b89d..1677ec5dd6 100644 --- a/src/structs.h +++ b/src/structs.h @@ -777,14 +777,6 @@ struct _http_state_flags { unsigned int sentLastChunk:1; ///< do not try to write last-chunk again }; -struct _ipcache_addrs { - Ip::Address *in_addrs; - unsigned char *bad_mask; - unsigned char count; - unsigned char cur; - unsigned char badcount; -}; - struct _domain_ping { char *domain; int do_ping; /* boolean */ diff --git a/src/tools.cc b/src/tools.cc index 878fbd97a5..3ee13dea99 100644 --- a/src/tools.cc +++ b/src/tools.cc @@ -44,6 +44,7 @@ #include "SquidTime.h" #include "ipc/Kids.h" #include "ipc/Coordinator.h" +#include "ipcache.h" #include "SwapDir.h" #include "wordlist.h" diff --git a/src/typedefs.h b/src/typedefs.h index 9ffa37cec2..8ef0b2bed5 100644 --- a/src/typedefs.h +++ b/src/typedefs.h @@ -74,8 +74,6 @@ typedef struct _HttpBody HttpBody; typedef struct _ConnCloseHelperData ConnCloseHelperData; -typedef struct _ipcache_addrs ipcache_addrs; - typedef struct _domain_ping domain_ping; typedef struct _domain_type domain_type; @@ -147,7 +145,6 @@ typedef void DTCB(int errflag, void *data); /* disk trunc CB */ class DnsLookupDetails; typedef void FQDNH(const char *, const DnsLookupDetails &details, void *); typedef void IDCB(const char *ident, void *data); -typedef void IPH(const ipcache_addrs *, const DnsLookupDetails &details, void *); #include "anyp/ProtocolType.h" typedef void IRCB(struct peer *, peer_t, AnyP::ProtocolType, void *, void *data);