18ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/*
28ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * $Id: options.h,v 1.1 2004/11/14 07:26:26 paulus Exp $
38ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project *
48ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * Copyright (C) 1996 Lars Fenneberg
58ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project *
68ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * See the file COPYRIGHT for the respective terms and conditions.
78ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * If the file is missing contact me at lf@elemental.net
88ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * and I'll send you a copy.
98ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project *
108ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project */
118ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project
128ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define OPTION_LEN	64
138ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project
148ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* ids for different option types */
158ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define OT_STR		(1<<0)	  /* string */
168ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define OT_INT		(1<<1)	  /* integer */
178ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define OT_SRV		(1<<2)	  /* server list */
188ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define OT_AUO		(1<<3)    /* authentication order */
198ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project
208ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define OT_ANY		((unsigned int)~0) /* used internally */
218ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project
228ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* status types */
238ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define ST_UNDEF	(1<<0)	  /* option is undefined */
248ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project
258ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projecttypedef struct _option {
268ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project	char name[OPTION_LEN];	  /* name of the option */
278ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project	int type, status;	  /* type and status    */
288ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project	void *val;		  /* pointer to option value */
298ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project} OPTION;
308ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project
318ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectstatic SERVER acctserver = {0};
328ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectstatic SERVER authserver = {0};
338ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project
348ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectint default_tries = 4;
358ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectint default_timeout = 60;
368ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project
378ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectstatic OPTION config_options[] = {
388ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* internally used options */
398ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project{"config_file",		OT_STR, ST_UNDEF, NULL},
408ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* General options */
418ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project{"auth_order",	 	OT_AUO, ST_UNDEF, NULL},
428ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project{"login_tries",	 	OT_INT, ST_UNDEF, &default_tries},
438ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project{"login_timeout",	OT_INT, ST_UNDEF, &default_timeout},
448ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project{"nologin",		OT_STR, ST_UNDEF, "/etc/nologin"},
458ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project{"issue",		OT_STR, ST_UNDEF, "/etc/radiusclient/issue"},
468ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* RADIUS specific options */
478ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project{"authserver",		OT_SRV, ST_UNDEF, &authserver},
488ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project{"acctserver",		OT_SRV, ST_UNDEF, &acctserver},
498ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project{"servers",		OT_STR, ST_UNDEF, NULL},
508ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project{"dictionary",		OT_STR, ST_UNDEF, NULL},
518ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project{"login_radius",	OT_STR, ST_UNDEF, "/usr/sbin/login.radius"},
528ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project{"seqfile",		OT_STR, ST_UNDEF, NULL},
538ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project{"mapfile",		OT_STR, ST_UNDEF, NULL},
548ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project{"default_realm",	OT_STR, ST_UNDEF, NULL},
558ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project{"radius_timeout",	OT_INT, ST_UNDEF, NULL},
568ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project{"radius_retries",	OT_INT,	ST_UNDEF, NULL},
578ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project{"nas_identifier",      OT_STR, ST_UNDEF, ""},
588ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* local options */
598ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project{"login_local",		OT_STR, ST_UNDEF, NULL},
608ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project};
618ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project
628ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectstatic int num_options = ((sizeof(config_options))/(sizeof(config_options[0])));
63