/* * $Id: options.h,v 1.1 2004/11/14 07:26:26 paulus Exp $ * * Copyright (C) 1996 Lars Fenneberg * * See the file COPYRIGHT for the respective terms and conditions. * If the file is missing contact me at lf@elemental.net * and I'll send you a copy. * */ #define OPTION_LEN 64 /* ids for different option types */ #define OT_STR (1<<0) /* string */ #define OT_INT (1<<1) /* integer */ #define OT_SRV (1<<2) /* server list */ #define OT_AUO (1<<3) /* authentication order */ #define OT_ANY ((unsigned int)~0) /* used internally */ /* status types */ #define ST_UNDEF (1<<0) /* option is undefined */ typedef struct _option { char name[OPTION_LEN]; /* name of the option */ int type, status; /* type and status */ void *val; /* pointer to option value */ } OPTION; static SERVER acctserver = {0}; static SERVER authserver = {0}; int default_tries = 4; int default_timeout = 60; static OPTION config_options[] = { /* internally used options */ {"config_file", OT_STR, ST_UNDEF, NULL}, /* General options */ {"auth_order", OT_AUO, ST_UNDEF, NULL}, {"login_tries", OT_INT, ST_UNDEF, &default_tries}, {"login_timeout", OT_INT, ST_UNDEF, &default_timeout}, {"nologin", OT_STR, ST_UNDEF, "/etc/nologin"}, {"issue", OT_STR, ST_UNDEF, "/etc/radiusclient/issue"}, /* RADIUS specific options */ {"authserver", OT_SRV, ST_UNDEF, &authserver}, {"acctserver", OT_SRV, ST_UNDEF, &acctserver}, {"servers", OT_STR, ST_UNDEF, NULL}, {"dictionary", OT_STR, ST_UNDEF, NULL}, {"login_radius", OT_STR, ST_UNDEF, "/usr/sbin/login.radius"}, {"seqfile", OT_STR, ST_UNDEF, NULL}, {"mapfile", OT_STR, ST_UNDEF, NULL}, {"default_realm", OT_STR, ST_UNDEF, NULL}, {"radius_timeout", OT_INT, ST_UNDEF, NULL}, {"radius_retries", OT_INT, ST_UNDEF, NULL}, {"nas_identifier", OT_STR, ST_UNDEF, ""}, /* local options */ {"login_local", OT_STR, ST_UNDEF, NULL}, }; static int num_options = ((sizeof(config_options))/(sizeof(config_options[0])));