haproxy/include/common/appsession.h
Willy Tarreau 26c250683f [MEDIUM] minor update to the task api: let the scheduler queue itself
All the tasks callbacks had to requeue the task themselves, and update
a global timeout. This was not convenient at all. Now the API has been
simplified. The tasks callbacks only have to update their expire timer,
and return either a pointer to the task or NULL if the task has been
deleted. The scheduler will take care of requeuing the task at the
proper place in the wait queue.
2009-03-08 09:38:41 +01:00

54 lines
1.0 KiB
C

#ifndef _COMMON_APPSESS_H
#define _COMMON_APPSESS_H
/*
* The time between two calls of appsession_refresh in ms.
*/
#define TBLCHKINT 5000
#include <sys/time.h>
#include <common/config.h>
#include <common/memory.h>
#include <types/task.h>
typedef struct appsessions {
char *sessid;
char *serverid;
int expire; /* next expiration time for this application session (in tick) */
unsigned long int request_count;
struct list hash_list;
} appsess;
extern struct pool_head *pool2_appsess;
struct app_pool {
struct pool_head *sessid;
struct pool_head *serverid;
};
extern struct app_pool apools;
extern int have_appsession;
/* Callback for hash_lookup */
int match_str(const void *key1, const void *key2);
/* Callback for destroy */
void destroy(appsess *data);
struct task *appsession_refresh(struct task *t);
int appsession_task_init(void);
int appsession_init(void);
void appsession_cleanup(void);
#endif /* _COMMON_APPSESS_H */
/*
* Local variables:
* c-indent-level: 8
* c-basic-offset: 8
* End:
*/