blob: 2c39e4663c8fd9bec72069171b5582191f1b63a1 [file] [log] [blame]
Willy Tarreau2dd0d472006-06-29 17:53:05 +02001#ifndef _COMMON_APPSESS_H
2#define _COMMON_APPSESS_H
Willy Tarreaubaaee002006-06-26 02:48:02 +02003
4#define TBLSIZ 10
5#define TBLCHKINT 5000 /* The time between two calls of appsession_refresh in ms */
6
7#include <sys/time.h>
8
Willy Tarreau2dd0d472006-06-29 17:53:05 +02009#include <common/chtbl.h>
10#include <common/hashpjw.h>
11#include <common/list.h>
Willy Tarreaubaaee002006-06-26 02:48:02 +020012
13#include <types/task.h>
14
15typedef struct appsessions {
16 char *sessid;
17 char *serverid;
18 struct timeval expire; /* next expiration time for this application session */
19 unsigned long int request_count;
20} appsess;
21
22#define sizeof_appsess sizeof(struct appsessions)
23extern void **pool_appsess;
24
25struct app_pool {
26 void **sessid;
27 void **serverid;
28 int ses_waste, ses_use, ses_msize;
29 int ser_waste, ser_use, ser_msize;
30};
31
32extern struct app_pool apools;
33extern int have_appsession;
34
35
36/* Callback for hash_lookup */
37int match_str(const void *key1, const void *key2);
38
39/* Callback for destroy */
40void destroy(void *data);
41
42#if defined(DEBUG_HASH)
43static void print_table(const CHTbl *htbl);
44#endif
45
46int appsession_refresh(struct task *t);
47int appsession_task_init(void);
48int appsession_init(void);
49void appsession_cleanup(void);
50
Willy Tarreau2dd0d472006-06-29 17:53:05 +020051#endif /* _COMMON_APPSESS_H */
Willy Tarreaubaaee002006-06-26 02:48:02 +020052
53/*
54 * Local variables:
55 * c-indent-level: 8
56 * c-basic-offset: 8
57 * End:
58 */