-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhashtab.h
107 lines (92 loc) · 4.7 KB
/
hashtab.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#ifndef _HASHTAB_H
#define _HASHTAB_H
typedef struct hnode *HNODEPTR; /* site node (host) pointer */
typedef struct unode *UNODEPTR; /* url node pointer */
typedef struct rnode *RNODEPTR; /* referrer node */
typedef struct anode *ANODEPTR; /* user agent node pointer */
typedef struct snode *SNODEPTR; /* Search string node pointer */
typedef struct inode *INODEPTR; /* user (ident) node pointer */
#ifdef USE_DNS
typedef struct dnode *DNODEPTR; /* DNS hash table node struct */
#endif
/* Object flags */
#define OBJ_REG 0 /* Regular object */
#define OBJ_HIDE 1 /* Hidden object */
#define OBJ_GRP 2 /* Grouped object */
#ifdef USE_DNS
struct dnode { char *string; /* DNS node hash table struct */
struct sockaddr_storage addr;
int addrlen;
struct dnode *llist;
struct dnode *next; };
#endif
struct hnode { char *string; /* host hash table structure */
int flag;
u_int64_t count;
u_int64_t files;
u_int64_t visit; /* visit information */
u_int64_t tstamp;
char *lasturl;
double xfer;
struct hnode *next; };
struct unode { char *string; /* url hash table structure */
int flag; /* Object type (REG, HIDE, GRP) */
u_int64_t count; /* requests counter */
u_int64_t files; /* files counter */
u_int64_t entry; /* entry page counter */
u_int64_t exit; /* exit page counter */
double xfer; /* xfer size in bytes */
struct unode *next; }; /* pointer to next node */
struct rnode { char *string; /* referrer hash table struct */
int flag;
u_int64_t count;
struct rnode *next; };
struct anode { char *string;
int flag;
u_int64_t count;
struct anode *next; };
struct snode { char *string; /* search string struct */
u_int64_t count;
struct snode *next; };
struct inode { char *string; /* host hash table struct */
int flag;
u_int64_t count;
u_int64_t files;
u_int64_t visit;
u_int64_t tstamp;
double xfer;
struct inode *next; };
extern HNODEPTR sm_htab[MAXHASH]; /* hash tables */
extern HNODEPTR sd_htab[MAXHASH];
extern UNODEPTR um_htab[MAXHASH]; /* for hits, sites, */
extern RNODEPTR rm_htab[MAXHASH]; /* referrers and agents... */
extern ANODEPTR am_htab[MAXHASH];
extern SNODEPTR sr_htab[MAXHASH]; /* search string table */
extern INODEPTR im_htab[MAXHASH]; /* ident table (username) */
#ifdef USE_DNS
extern DNODEPTR host_table[MAXHASH]; /* DNS resolver table */
#endif
extern int put_hnode(char *, int, u_int64_t, u_int64_t, double,
u_int64_t *, u_int64_t, u_int64_t, char *, HNODEPTR *);
extern int put_unode(char *, int, u_int64_t, double, u_int64_t *,
u_int64_t, u_int64_t, UNODEPTR *);
extern int put_inode(char *, int, u_int64_t, u_int64_t, double,
u_int64_t *, u_int64_t, u_int64_t, INODEPTR *);
extern int put_rnode(char *, int, u_int64_t, u_int64_t *, RNODEPTR *);
extern int put_anode(char *, int, u_int64_t, u_int64_t *, ANODEPTR *);
extern int put_snode(char *, u_int64_t, SNODEPTR *);
#ifdef USE_DNS
extern int put_dnode(char *, void *, int, DNODEPTR *);
extern void del_dlist(DNODEPTR *);
#endif
extern void del_htabs(); /* delete hash tables */
extern void del_hlist(HNODEPTR *); /* delete host htab */
extern void del_ulist(UNODEPTR *); /* delete url htab */
extern void del_rlist(RNODEPTR *); /* delete referrer htab */
extern void del_alist(ANODEPTR *); /* delete host htab */
extern void del_slist(SNODEPTR *); /* delete host htab */
extern void del_ilist(INODEPTR *); /* delete host htab */
extern void month_update_exit(u_int64_t);
extern u_int64_t tot_visit(HNODEPTR *);
extern char *find_url(char *);
#endif /* _HASHTAB_H */