Annotation of embedaddon/coova-chilli/src/options.h, revision 1.1

1.1     ! misho       1: /* 
        !             2:  *
        !             3:  * chilli - ChilliSpot.org. A Wireless LAN Access Point Controller.
        !             4:  * Copyright (C) 2003, 2004, 2005 Mondru AB.
        !             5:  * Copyright (C) 2006 PicoPoint B.V.
        !             6:  * Copyright (c) 2006-2007 David Bird <david@coova.com>
        !             7:  *
        !             8:  * The contents of this file may be used under the terms of the GNU
        !             9:  * General Public License Version 2, provided that the above copyright
        !            10:  * notice and this permission notice is included in all copies or
        !            11:  * substantial portions of the software.
        !            12:  * 
        !            13:  * The initial developer of the original code is
        !            14:  * Jens Jakobsen <jj@chillispot.org>
        !            15:  *
        !            16:  */
        !            17: 
        !            18: #ifndef _OPTIONS_H
        !            19: #define _OPTIONS_H
        !            20: 
        !            21: #include "pkt.h"
        !            22: #include "garden.h"
        !            23: 
        !            24: struct options_t {
        !            25:   int initialized;
        !            26:   int foreground;
        !            27:   int debug;
        !            28:   /* conf */
        !            29:   int interval;
        !            30:   char *pidfile;
        !            31:   char *statedir;
        !            32: 
        !            33:   /* TUN parameters */
        !            34:   struct in_addr net;            /* Network IP address */
        !            35:   char netc[OPT_IPADDRLEN];
        !            36:   struct in_addr mask;           /* Network mask */
        !            37:   char maskc[OPT_IPADDRLEN];
        !            38: 
        !            39:   char * tundev;
        !            40:   char * dynip;                  /* Dynamic IP address pool */
        !            41:   char * statip;                 /* Static IP address pool */
        !            42:   int allowdyn;                  /* Allow dynamic address allocation */
        !            43:   int allowstat;                 /* Allow static address allocation */
        !            44:   struct in_addr dns1;           /* Primary DNS server IP address */
        !            45:   struct in_addr dns2;           /* Secondary DNS server IP address */
        !            46:   char * domain;                 /* Domain to use for DNS lookups */
        !            47:   char * ipup;                   /* Script to run after link-up */
        !            48:   char * ipdown;                 /* Script to run after link-down */
        !            49:   char * conup;                  /* Script to run after session/connection-up */
        !            50:   char * condown;                /* Script to run after session/connection-down */
        !            51:   int txqlen;
        !            52: 
        !            53:   /* Radius parameters */
        !            54:   struct in_addr radiuslisten;   /* IP address to listen to */
        !            55:   struct in_addr radiusserver1;  /* IP address of radius server 1 */
        !            56:   struct in_addr radiusserver2;  /* IP address of radius server 2 */
        !            57:   uint16_t radiusauthport;       /* Authentication UDP port */
        !            58:   uint16_t radiusacctport;       /* Accounting UDP port */
        !            59:   char* radiussecret;            /* Radius shared secret */
        !            60:   char* radiusnasid;             /* Radius NAS-Identifier */
        !            61:   char* radiuslocationid;        /* WISPr location ID */
        !            62:   char* radiuslocationname;      /* WISPr location name */
        !            63:   char* locationname;            /* Location name */
        !            64:   int radiusnasporttype;         /* NAS-Port-Type */
        !            65:   uint16_t coaport;              /* UDP port to listen to */
        !            66:   int coanoipcheck;              /* Allow disconnect from any IP */
        !            67:   int logfacility;
        !            68:   int radiustimeout;             /* Retry timeout in milli seconds */
        !            69:   int radiusretry;               /* Total amount of retries */
        !            70:   int radiusretrysec;            /* Amount of retries after we switch to secondary */
        !            71: 
        !            72:   /* Radius proxy parameters */
        !            73:   struct in_addr proxylisten;    /* IP address to listen to */
        !            74:   int proxyport;                 /* UDP port to listen to */
        !            75:   struct in_addr proxyaddr;      /* IP address of proxy client(s) */
        !            76:   struct in_addr proxymask;      /* IP mask of proxy client(s) */
        !            77:   char* proxysecret;             /* Proxy shared secret */
        !            78: 
        !            79:   struct in_addr postauth_proxyip;  /* IP address to proxy http to */
        !            80:   int postauth_proxyport;           /* TCP port to proxy to */
        !            81: 
        !            82:   /* DHCP parameters */
        !            83:   char *dhcpif;                 /* Interface: eth1 */
        !            84:   char *routeif;                /* Interface: eth0 (optional) */
        !            85:   unsigned char dhcpmac[PKT_ETH_ALEN]; /* Interface MAC address */
        !            86:   int dhcpusemac;                /* Use given MAC or interface default */
        !            87:   struct in_addr dhcplisten;     /* IP address to listen to */
        !            88:   int lease;                     /* DHCP lease time */
        !            89:   int dhcpstart;
        !            90:   int dhcpend;
        !            91: 
        !            92:   struct in_addr dhcprelayip;    /* IP address of DHCP relay header (default to uamlisten) */
        !            93:   struct in_addr dhcpgwip;       /* IP address of DHCP gateway to relay to */
        !            94:   uint16_t dhcpgwport;           /* Port of DHCP gateway to relay to */
        !            95: 
        !            96: 
        !            97:   /* UAM parameters */
        !            98:   struct in_addr uamserver[UAMSERVER_MAX]; /* IP address of UAM server */
        !            99:   int uamserverlen;              /* Number of UAM servers */
        !           100:   int uamserverport;             /* Port of UAM server */
        !           101:   char* uamsecret;               /* Shared secret */
        !           102:   char* uamurl;                  /* URL of authentication server */
        !           103:   char* uamhomepage;             /* URL of redirection homepage */
        !           104:   char* wisprlogin;              /* Specific WISPr login url */
        !           105:   int uamhomepageport;          /* Port of redirection homepage */
        !           106: 
        !           107:   struct in_addr uamlisten;      /* IP address of local authentication */
        !           108:   int uamport;                   /* TCP port to listen to */
        !           109:   int uamuiport;                 /* TCP port to listen to */
        !           110: 
        !           111:   struct in_addr uamlogout;      /* IP address of HTTP auto-logout */
        !           112: 
        !           113: 
        !           114:   /* booleans */
        !           115:   uint8_t usetap:1;
        !           116:   uint8_t eapolenable:1;            /* Use eapol */
        !           117:   uint8_t swapoctets:1;
        !           118:   uint8_t usestatusfile:1;
        !           119:   uint8_t chillixml:1;
        !           120:   uint8_t pap_always_ok:1;
        !           121:   uint8_t uamanydns:1;              /* Allow any dns server */
        !           122:   uint8_t uamanyip:1;               /* Allow any ip address */
        !           123:   uint8_t dnsparanoia:1;            /* Filter DNS for questionable content (dns tunnels) */
        !           124:   uint8_t no_uamsuccess:1;          /* Do not send redirect back to UAM on success */
        !           125:   uint8_t no_uamwispr:1;            /* Do not have ChilliSpot return WISPr blocks */
        !           126:   uint8_t acct_update:1;
        !           127:   uint8_t wpaguests:1;              /* Allow WPS "Guest" access */
        !           128:   uint8_t openidauth:1;             /* Allow OpenID authentication */
        !           129:   uint8_t macauth:1;                /* Use MAC authentication */
        !           130:   uint8_t macauthdeny:1;            /* Deny any access to those given Access-Reject */
        !           131:   uint8_t macallowlocal:1;          /* Do not use RADIUS for authenticating the macallowed */
        !           132:   uint8_t radiusoriginalurl:1;      /* Send ChilliSpot-OriginalURL in AccessRequest */
        !           133:   uint8_t dhcpradius:1;             /* Send certain DHCP options in RADIUS attributes */
        !           134:   /* */
        !           135: 
        !           136:   pass_through pass_throughs[MAX_PASS_THROUGHS];
        !           137:   size_t num_pass_throughs;
        !           138: 
        !           139:   char** uamdomains;
        !           140: 
        !           141:   /* MAC Authentication */
        !           142:   unsigned char macok[MACOK_MAX][PKT_ETH_ALEN]; /* Allowed MACs */
        !           143:   int macoklen;                   /* Number of MAC addresses */
        !           144:   char* macsuffix;               /* Suffix to add to MAC address */
        !           145:   char* macpasswd;               /* Password to use for MAC authentication */  
        !           146: 
        !           147:   unsigned long defsessiontimeout;
        !           148:   unsigned int defbandwidthmaxdown;
        !           149:   unsigned int defbandwidthmaxup;
        !           150:   unsigned int defidletimeout;
        !           151:   unsigned short definteriminterval;
        !           152: 
        !           153:   /* local content */
        !           154:   char *wwwdir;
        !           155:   char *wwwbin;
        !           156:   char *uamui;
        !           157:   char *localusers;
        !           158: 
        !           159:   /* Admin RADIUS Authentication & Configuration */
        !           160:   char *adminuser;
        !           161:   char *adminpasswd;
        !           162: 
        !           163:   /* Location-awareness */
        !           164:   char *ssid;
        !           165:   char *nasmac;
        !           166:   char *nasip;
        !           167: 
        !           168:   /* Command-Socket */
        !           169:   char *cmdsocket;
        !           170: };
        !           171: 
        !           172: extern struct options_t options;
        !           173: 
        !           174: int option_aton(struct in_addr *addr, struct in_addr *mask, char *pool, int number);
        !           175: int process_options(int argc, char **argv, int minimal);
        !           176: void reprocess_options(int argc, char **argv);
        !           177: 
        !           178: #endif /*_OPTIONS_H */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>