1 #ifndef _DNS_RESOLV_H
2 #define _DNS_RESOLV_H
3 
4 #ifdef USE_DNS    /* skip whole file if not using DNS stuff...             */
5 
6 struct dnsRecord { time_t    timeStamp;       /* Timestamp of resolv data  */
7                    int       numeric;         /* 0: Name, 1: IP-address    */
8                    char      hostName[1]; };  /* Hostname (var length)     */
9 
10 struct dns_child             /* Defines the communication with a DNS child */
11 {
12   int inpipe[2];             /* Pipe Child  -> Father */
13   int outpipe[2];            /* Pipe Father -> Child */
14   int pid;                   /* PID of Child */
15   int flags;                 /* see below */
16   struct dnode *cur;         /* Currently processed node */
17 };
18 
19 extern void resolve_dns(struct log_struct *);
20 extern DB   *dns_db;
21 extern int  dns_fd;
22 extern int  dns_resolver(void *);
23 extern int  open_cache();
24 extern int  close_cache();
25 
26 extern DB   *geo_db;
27 extern DB   *geodb_open(char *);
28 extern char *geodb_ver(DB *, char *);
29 extern char *geodb_get_cc(DB *, char *, char *);
30 extern void  geodb_close(DB *);
31 
32 #define DNS_CHILD_READY   0x1         /* Our child flags                    */
33 #define DNS_CHILD_RUNNING 0x2
34 
35 #define MAXCHILD          100         /* Maximum number of DNS children     */
36 
37 #ifndef GEODB_LOC
38 #define GEODB_LOC "/usr/share/GeoDB"
39 #endif
40 
41 #endif  /* USE_DNS */
42 #endif  /* _DNS_RESOLV_H */
43