Initial import from FreeBSD RELENG_4:
[dragonfly.git] / sys / contrib / ipfilter / netinet / ip_auth.h
1 /*
2  * Copyright (C) 1997-2001 by Darren Reed & Guido Van Rooij.
3  *
4  * See the IPFILTER.LICENCE file for details on licencing.
5  *
6  * $Id: ip_auth.h,v 2.1 1999/08/04 17:29:54 darrenr Exp $
7  * $FreeBSD: src/sys/contrib/ipfilter/netinet/ip_auth.h,v 1.10.2.4 2003/03/01 03:55:54 darrenr Exp $
8  *
9  */
10 #ifndef __IP_AUTH_H__
11 #define __IP_AUTH_H__
12
13 #define FR_NUMAUTH      32
14
15 typedef struct  frauth {
16         int     fra_age;
17         int     fra_index;
18         u_32_t  fra_pass;
19         fr_info_t       fra_info;
20 #if SOLARIS
21         queue_t *fra_q;
22 #endif
23 } frauth_t;
24
25 typedef struct  frauthent  {
26         struct  frentry fae_fr;
27         struct  frauthent       *fae_next;
28         u_long  fae_age;
29 } frauthent_t;
30
31 typedef struct  fr_authstat {
32         U_QUAD_T        fas_hits;
33         U_QUAD_T        fas_miss;
34         u_long          fas_nospace;
35         u_long          fas_added;
36         u_long          fas_sendfail;
37         u_long          fas_sendok;
38         u_long          fas_queok;
39         u_long          fas_quefail;
40         u_long          fas_expire;
41         frauthent_t     *fas_faelist;
42 } fr_authstat_t;
43
44
45 extern  frentry_t       *ipauth;
46 extern  struct fr_authstat      fr_authstats;
47 extern  int     fr_defaultauthage;
48 extern  int     fr_authsize;
49 extern  int     fr_authused;
50 extern  int     fr_auth_lock;
51 extern  u_32_t  fr_checkauth __P((ip_t *, fr_info_t *));
52 extern  void    fr_authexpire __P((void));
53 extern  void    fr_authunload __P((void));
54 extern  mb_t    *fr_authpkts[];
55 extern  int     fr_newauth __P((mb_t *, fr_info_t *, ip_t *));
56 #if defined(__NetBSD__) || defined(__OpenBSD__) || \
57     (__FreeBSD_version >= 300003)
58 extern  int     fr_preauthcmd __P((u_long, frentry_t *, frentry_t **));
59 extern  int     fr_auth_ioctl __P((caddr_t, int, u_long));
60 #else
61 extern  int     fr_preauthcmd __P((int, frentry_t *, frentry_t **));
62 extern  int     fr_auth_ioctl __P((caddr_t, int, int));
63 #endif
64 #endif  /* __IP_AUTH_H__ */