]> git.ipfire.org Git - thirdparty/squid.git/blob - src/ipcache.h
Merged from trunk
[thirdparty/squid.git] / src / ipcache.h
1 #ifndef _SQUID_IPCACHE_H
2 #define _SQUID_IPCACHE_H
3
4 namespace Ip
5 {
6 class Address;
7 }
8
9 class DnsLookupDetails;
10
11 typedef struct _ipcache_addrs {
12 Ip::Address *in_addrs;
13 unsigned char *bad_mask;
14 unsigned char count;
15 unsigned char cur;
16 unsigned char badcount;
17 } ipcache_addrs;
18
19 typedef void IPH(const ipcache_addrs *, const DnsLookupDetails &details, void *);
20
21 void ipcache_purgelru(void *);
22 void ipcache_nbgethostbyname(const char *name, IPH * handler, void *handlerData);
23 const ipcache_addrs *ipcache_gethostbyname(const char *, int flags);
24 void ipcacheInvalidate(const char *);
25 void ipcacheInvalidateNegative(const char *);
26 void ipcache_init(void);
27 void ipcacheCycleAddr(const char *name, ipcache_addrs *);
28 void ipcacheMarkBadAddr(const char *name, const Ip::Address &);
29 void ipcacheMarkGoodAddr(const char *name, const Ip::Address &);
30 void ipcacheMarkAllGood(const char *name);
31 void ipcacheFreeMemory(void);
32 ipcache_addrs *ipcacheCheckNumeric(const char *name);
33 void ipcache_restart(void);
34 int ipcacheAddEntryFromHosts(const char *name, const char *ipaddr);
35
36 #endif /* _SQUID_IPCACHE_H */