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>