4 typedef struct hnode
*HNODEPTR
; /* site node (host) pointer */
5 typedef struct unode
*UNODEPTR
; /* url node pointer */
6 typedef struct rnode
*RNODEPTR
; /* referrer node */
7 typedef struct anode
*ANODEPTR
; /* user agent node pointer */
8 typedef struct snode
*SNODEPTR
; /* Search string node pointer */
9 typedef struct inode
*INODEPTR
; /* user (ident) node pointer */
11 typedef struct dnode
*DNODEPTR
; /* DNS hash table node struct */
15 #define OBJ_REG 0 /* Regular object */
16 #define OBJ_HIDE 1 /* Hidden object */
17 #define OBJ_GRP 2 /* Grouped object */
20 struct dnode
{ char *string
; /* DNS node hash table struct */
21 struct sockaddr_storage addr
;
24 struct dnode
*next
; };
27 struct hnode
{ char *string
; /* host hash table structure */
31 u_int64_t visit
; /* visit information */
35 struct hnode
*next
; };
37 struct unode
{ char *string
; /* url hash table structure */
38 int flag
; /* Object type (REG, HIDE, GRP) */
39 u_int64_t count
; /* requests counter */
40 u_int64_t files
; /* files counter */
41 u_int64_t entry
; /* entry page counter */
42 u_int64_t exit
; /* exit page counter */
43 double xfer
; /* xfer size in bytes */
44 struct unode
*next
; }; /* pointer to next node */
46 struct rnode
{ char *string
; /* referrer hash table struct */
49 struct rnode
*next
; };
51 struct anode
{ char *string
;
54 struct anode
*next
; };
56 struct snode
{ char *string
; /* search string struct */
58 struct snode
*next
; };
60 struct inode
{ char *string
; /* host hash table struct */
67 struct inode
*next
; };
69 extern HNODEPTR sm_htab
[MAXHASH
]; /* hash tables */
70 extern HNODEPTR sd_htab
[MAXHASH
];
71 extern UNODEPTR um_htab
[MAXHASH
]; /* for hits, sites, */
72 extern RNODEPTR rm_htab
[MAXHASH
]; /* referrers and agents... */
73 extern ANODEPTR am_htab
[MAXHASH
];
74 extern SNODEPTR sr_htab
[MAXHASH
]; /* search string table */
75 extern INODEPTR im_htab
[MAXHASH
]; /* ident table (username) */
77 extern DNODEPTR host_table
[MAXHASH
]; /* DNS resolver table */
80 extern int put_hnode(char *, int, u_int64_t
, u_int64_t
, double,
81 u_int64_t
*, u_int64_t
, u_int64_t
, char *, HNODEPTR
*);
82 extern int put_unode(char *, int, u_int64_t
, double, u_int64_t
*,
83 u_int64_t
, u_int64_t
, UNODEPTR
*);
84 extern int put_inode(char *, int, u_int64_t
, u_int64_t
, double,
85 u_int64_t
*, u_int64_t
, u_int64_t
, INODEPTR
*);
86 extern int put_rnode(char *, int, u_int64_t
, u_int64_t
*, RNODEPTR
*);
87 extern int put_anode(char *, int, u_int64_t
, u_int64_t
*, ANODEPTR
*);
88 extern int put_snode(char *, u_int64_t
, SNODEPTR
*);
91 extern int put_dnode(char *, void *, int, DNODEPTR
*);
92 extern void del_dlist(DNODEPTR
*);
95 extern void del_htabs(); /* delete hash tables */
96 extern void del_hlist(HNODEPTR
*); /* delete host htab */
97 extern void del_ulist(UNODEPTR
*); /* delete url htab */
98 extern void del_rlist(RNODEPTR
*); /* delete referrer htab */
99 extern void del_alist(ANODEPTR
*); /* delete host htab */
100 extern void del_slist(SNODEPTR
*); /* delete host htab */
101 extern void del_ilist(INODEPTR
*); /* delete host htab */
103 extern void month_update_exit(u_int64_t
);
104 extern u_int64_t
tot_visit(HNODEPTR
*);
105 extern char *find_url(char *);
107 #endif /* _HASHTAB_H */