• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * $Id: options.h,v 1.1 2004/11/14 07:26:26 paulus Exp $
3  *
4  * Copyright (C) 1996 Lars Fenneberg
5  *
6  * See the file COPYRIGHT for the respective terms and conditions.
7  * If the file is missing contact me at lf@elemental.net
8  * and I'll send you a copy.
9  *
10  */
11 
12 #define OPTION_LEN	64
13 
14 /* ids for different option types */
15 #define OT_STR		(1<<0)	  /* string */
16 #define OT_INT		(1<<1)	  /* integer */
17 #define OT_SRV		(1<<2)	  /* server list */
18 #define OT_AUO		(1<<3)    /* authentication order */
19 
20 #define OT_ANY		((unsigned int)~0) /* used internally */
21 
22 /* status types */
23 #define ST_UNDEF	(1<<0)	  /* option is undefined */
24 
25 typedef struct _option {
26 	char name[OPTION_LEN];	  /* name of the option */
27 	int type, status;	  /* type and status    */
28 	void *val;		  /* pointer to option value */
29 } OPTION;
30 
31 static SERVER acctserver = {0};
32 static SERVER authserver = {0};
33 
34 int default_tries = 4;
35 int default_timeout = 60;
36 
37 static OPTION config_options[] = {
38 /* internally used options */
39 {"config_file",		OT_STR, ST_UNDEF, NULL},
40 /* General options */
41 {"auth_order",	 	OT_AUO, ST_UNDEF, NULL},
42 {"login_tries",	 	OT_INT, ST_UNDEF, &default_tries},
43 {"login_timeout",	OT_INT, ST_UNDEF, &default_timeout},
44 {"nologin",		OT_STR, ST_UNDEF, "/etc/nologin"},
45 {"issue",		OT_STR, ST_UNDEF, "/etc/radiusclient/issue"},
46 /* RADIUS specific options */
47 {"authserver",		OT_SRV, ST_UNDEF, &authserver},
48 {"acctserver",		OT_SRV, ST_UNDEF, &acctserver},
49 {"servers",		OT_STR, ST_UNDEF, NULL},
50 {"dictionary",		OT_STR, ST_UNDEF, NULL},
51 {"login_radius",	OT_STR, ST_UNDEF, "/usr/sbin/login.radius"},
52 {"seqfile",		OT_STR, ST_UNDEF, NULL},
53 {"mapfile",		OT_STR, ST_UNDEF, NULL},
54 {"default_realm",	OT_STR, ST_UNDEF, NULL},
55 {"radius_timeout",	OT_INT, ST_UNDEF, NULL},
56 {"radius_retries",	OT_INT,	ST_UNDEF, NULL},
57 {"nas_identifier",      OT_STR, ST_UNDEF, ""},
58 {"bindaddr",            OT_STR, ST_UNDEF, NULL},
59 /* local options */
60 {"login_local",		OT_STR, ST_UNDEF, NULL},
61 };
62 
63 static int num_options = ((sizeof(config_options))/(sizeof(config_options[0])));
64