/* * Copyright (C) 2012 by Darren Reed. * * See the IPFILTER.LICENCE file for details on licencing. * Id: ip_auth.h,v 2.16.2.2 2006/03/16 06:45:49 darrenr Exp $ * */ #ifndef __IP_AUTH_H__ #define __IP_AUTH_H__ #define FR_NUMAUTH 32 typedef struct frauth { int fra_age; int fra_len; int fra_index; u_32_t fra_pass; fr_info_t fra_info; char *fra_buf; u_32_t fra_flx; #if SOLARIS queue_t *fra_q; mb_t *fra_m; #endif } frauth_t; typedef struct frauthent { struct frentry fae_fr; struct frauthent *fae_next; struct frauthent **fae_pnext; u_long fae_age; int fae_ref; } frauthent_t; typedef struct ipf_authstat { U_QUAD_T fas_hits; U_QUAD_T fas_miss; u_long fas_nospace; u_long fas_added; u_long fas_sendfail; u_long fas_sendok; u_long fas_queok; u_long fas_quefail; u_long fas_expire; frauthent_t *fas_faelist; } ipf_authstat_t; typedef struct ipf_auth_softc_s { ipfrwlock_t ipf_authlk; ipfmutex_t ipf_auth_mx; int ipf_auth_size; int ipf_auth_used; int ipf_auth_replies; int ipf_auth_defaultage; int ipf_auth_lock; ipf_authstat_t ipf_auth_stats; frauth_t *ipf_auth; mb_t **ipf_auth_pkts; int ipf_auth_start; int ipf_auth_end; int ipf_auth_next; frauthent_t *ipf_auth_entries; frentry_t *ipf_auth_ip; frentry_t *ipf_auth_rules; } ipf_auth_softc_t; extern frentry_t *ipf_auth_check(fr_info_t *, u_32_t *); extern void ipf_auth_expire(ipf_main_softc_t *); extern int ipf_auth_ioctl(ipf_main_softc_t *, caddr_t, ioctlcmd_t, int, int, void *); extern int ipf_auth_init(void); extern int ipf_auth_main_load(void); extern int ipf_auth_main_unload(void); extern void ipf_auth_soft_destroy(ipf_main_softc_t *, void *); extern void *ipf_auth_soft_create(ipf_main_softc_t *); extern int ipf_auth_new(mb_t *, fr_info_t *); extern int ipf_auth_precmd(ipf_main_softc_t *, ioctlcmd_t, frentry_t *, frentry_t **); extern void ipf_auth_unload(ipf_main_softc_t *); extern int ipf_auth_waiting(ipf_main_softc_t *); extern void ipf_auth_setlock(void *, int); extern int ipf_auth_soft_init(ipf_main_softc_t *, void *); extern int ipf_auth_soft_fini(ipf_main_softc_t *, void *); extern u_32_t ipf_auth_pre_scanlist(ipf_main_softc_t *, fr_info_t *, u_32_t); extern frentry_t **ipf_auth_rulehead(ipf_main_softc_t *); #endif /* __IP_AUTH_H__ */