From 52223ac31751a5ec0bd8be3beb3fdd0559353b54 Mon Sep 17 00:00:00 2001 From: Kozlov Dmitry Date: Wed, 24 Aug 2011 18:29:10 +0400 Subject: radius: better radius server fails handling --- accel-pppd/radius/radius_p.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'accel-pppd/radius/radius_p.h') diff --git a/accel-pppd/radius/radius_p.h b/accel-pppd/radius/radius_p.h index 578c7770..1fecd881 100644 --- a/accel-pppd/radius/radius_p.h +++ b/accel-pppd/radius/radius_p.h @@ -67,6 +67,7 @@ struct rad_req_t struct rad_server_t { struct list_head entry; + int id; in_addr_t auth_addr; int auth_port; char *auth_secret; @@ -79,9 +80,12 @@ struct rad_server_t int client_cnt; time_t fail_time; int conf_fail_time; + int timeout_cnt; pthread_mutex_t lock; }; +#define RAD_SERV_AUTH 0 +#define RAD_SERV_ACCT 1 extern int conf_max_try; extern int conf_timeout; @@ -138,7 +142,7 @@ struct rad_packet_t *rad_packet_alloc(int code); int rad_packet_build(struct rad_packet_t *pack, uint8_t *RA); int rad_packet_recv(int fd, struct rad_packet_t **, struct sockaddr_in *addr); void rad_packet_free(struct rad_packet_t *); -void rad_packet_print(struct rad_packet_t *pack, void (*print)(const char *fmt, ...)); +void rad_packet_print(struct rad_packet_t *pack, struct rad_server_t *s, void (*print)(const char *fmt, ...)); int rad_packet_send(struct rad_packet_t *pck, int fd, struct sockaddr_in *addr); void dm_coa_cancel(struct radius_pd_t *pd); @@ -149,6 +153,8 @@ int rad_server_req_enter(struct rad_req_t *); void rad_server_req_exit(struct rad_req_t *); int rad_server_realloc(struct rad_req_t *, int); void rad_server_fail(struct rad_server_t *); +void rad_server_timeout(struct rad_server_t *); +void rad_server_reply(struct rad_server_t *); struct stat_accm_t; struct stat_accm_t *stat_accm_create(unsigned int time); -- cgit v1.2.3