⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 conf.h.svn-base

📁 The Wifidog project is an open source captive portal solution. It was designed primarily for wireles
💻 SVN-BASE
字号:
/********************************************************************\ * This program is free software; you can redistribute it and/or    * * modify it under the terms of the GNU General Public License as   * * published by the Free Software Foundation; either version 2 of   * * the License, or (at your option) any later version.              * *                                                                  * * This program is distributed in the hope that it will be useful,  * * but WITHOUT ANY WARRANTY; without even the implied warranty of   * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the    * * GNU General Public License for more details.                     * *                                                                  * * You should have received a copy of the GNU General Public License* * along with this program; if not, contact:                        * *                                                                  * * Free Software Foundation           Voice:  +1-617-542-5942       * * 59 Temple Place - Suite 330        Fax:    +1-617-542-2652       * * Boston, MA  02111-1307,  USA       gnu@gnu.org                   * *                                                                  *\********************************************************************//* $Id$ *//** @file conf.h    @brief Config file parsing    @author Copyright (C) 2004 Philippe April <papril777@yahoo.com>*/#ifndef _CONFIG_H_#define _CONFIG_H_/*@{*/ /** Defines *//** How many times should we try detecting the interface with the default route * (in seconds).  If set to 0, it will keep retrying forever */#define NUM_EXT_INTERFACE_DETECT_RETRY 0/** How often should we try to detect the interface with the default route *  if it isn't up yet (interval in seconds) */#define EXT_INTERFACE_DETECT_RETRY_INTERVAL 1/** Defaults configuration values */#ifndef SYSCONFDIR	#define DEFAULT_CONFIGFILE "/etc/wifidog.conf"#else	#define DEFAULT_CONFIGFILE SYSCONFDIR"/wifidog.conf"#endif	#define DEFAULT_DAEMON 1#define DEFAULT_DEBUGLEVEL LOG_INFO#define DEFAULT_HTTPDMAXCONN 10#define DEFAULT_GATEWAYID NULL#define DEFAULT_GATEWAYPORT 2060#define DEFAULT_HTTPDNAME "WiFiDog"#define DEFAULT_CLIENTTIMEOUT 5#define DEFAULT_CHECKINTERVAL 60#define DEFAULT_LOG_SYSLOG 0#define DEFAULT_SYSLOG_FACILITY LOG_DAEMON#define DEFAULT_WDCTL_SOCK "/tmp/wdctl.sock"#define DEFAULT_INTERNAL_SOCK "/tmp/wifidog.sock"#define DEFAULT_AUTHSERVPORT 80#define DEFAULT_AUTHSERVSSLPORT 443/** Note that DEFAULT_AUTHSERVSSLAVAILABLE must be 0 or 1, even if the config file syntax is yes or no */#define DEFAULT_AUTHSERVSSLAVAILABLE 0/** Note:  The path must be prefixed by /, and must be suffixed /.  Put / for the server root.*/#define DEFAULT_AUTHSERVPATH "/wifidog/"#define DEFAULT_AUTHSERVLOGINPATHFRAGMENT "login/?"#define DEFAULT_AUTHSERVPORTALPATHFRAGMENT "portal/?"#define DEFAULT_AUTHSERVMSGPATHFRAGMENT "gw_message.php?"#define DEFAULT_AUTHSERVPINGPATHFRAGMENT "ping/?"#define DEFAULT_AUTHSERVAUTHPATHFRAGMENT "auth/?"/*@}*/ /** * Information about the authentication server */typedef struct _auth_serv_t {    char *authserv_hostname;	/**< @brief Hostname of the central server */    char *authserv_path;	/**< @brief Path where wifidog resides */    char *authserv_login_script_path_fragment;	/**< @brief This is the script the user will be sent to for login. */    char *authserv_portal_script_path_fragment;	/**< @brief This is the script the user will be sent to after a successfull login. */    char *authserv_msg_script_path_fragment;	/**< @brief This is the script the user will be sent to upon error to read a readable message. */    char *authserv_ping_script_path_fragment;	/**< @brief This is the ping heartbeating script. */    char *authserv_auth_script_path_fragment;	/**< @brief This is the script that talks the wifidog gateway protocol. */    int authserv_http_port;	/**< @brief Http port the central server				     listens on */    int authserv_ssl_port;	/**< @brief Https port the central server				     listens on */    int authserv_use_ssl;	/**< @brief Use SSL or not */    char *last_ip;	/**< @brief Last ip used by authserver */    struct _auth_serv_t *next;} t_auth_serv;/** * Firewall rules */typedef struct _firewall_rule_t {    int block_allow;		/**< @brief 1 = Allow rule, 0 = Block rule */    char *protocol;		/**< @brief tcp, udp, etc ... */    char *port;			/**< @brief Port to block/allow */    char *mask;			/**< @brief Mask for the rule *destination* */    struct _firewall_rule_t *next;} t_firewall_rule;/** * Firewall rulesets */typedef struct _firewall_ruleset_t {    char			*name;    t_firewall_rule		*rules;    struct _firewall_ruleset_t	*next;} t_firewall_ruleset;/** * Trusted MAC Addresses */typedef struct _trusted_mac_t {    char   *mac;    struct _trusted_mac_t *next;} t_trusted_mac;/** * Configuration structure */typedef struct {    char configfile[255];	/**< @brief name of the config file */    char *wdctl_sock;		/**< @brief wdctl path to socket */    char *internal_sock;		/**< @brief internal path to socket */    int daemon;			/**< @brief if daemon > 0, use daemon mode */    int debuglevel;		/**< @brief Debug information verbosity */    char *external_interface;	/**< @brief External network interface name for				     firewall rules */    char *gw_id;		/**< @brief ID of the Gateway, sent to central				     server */    char *gw_interface;		/**< @brief Interface we will accept connections on */    char *gw_address;		/**< @brief Internal IP address for our web				     server */    int gw_port;		/**< @brief Port the webserver will run on */        t_auth_serv	*auth_servers;	/**< @brief Auth servers list */    char *httpdname;		/**< @brief Name the web server will return when				     replying to a request */    int httpdmaxconn;		/**< @brief Used by libhttpd, not sure what it				     does */    int clienttimeout;		/**< @brief How many CheckIntervals before a client				     must be re-authenticated */    int checkinterval;		/**< @brief Frequency the the client timeout check				     thread will run. */    int log_syslog;		/**< @brief boolean, wether to log to syslog */    int syslog_facility;	/**< @brief facility to use when using syslog for				     logging */    t_firewall_ruleset	*rulesets;	/**< @brief firewall rules */    t_trusted_mac *trustedmaclist; /**< @brief list of trusted macs */} s_config;/** @brief Get the current gateway configuration */s_config *config_get_config(void);/** @brief Initialise the conf system */void config_init(void);/** @brief Initialize the variables we override with the command line*/void config_init_override(void);/** @brief Reads the configuration file */void config_read(char *filename);/** @brief Check that the configuration is valid */void config_validate(void);/** @brief Get the active auth server */t_auth_serv *get_auth_server(void);/** @brief Bump server to bottom of the list */void mark_auth_server_bad(t_auth_serv *);/** @brief Fetch a firewall rule set. */t_firewall_rule *get_ruleset(char *);static void config_notnull(void *parm, char *parmname);static int parse_boolean_value(char *);static void parse_auth_server(FILE *, char *, int *);static int _parse_firewall_rule(char *ruleset, char *leftover);static void parse_firewall_ruleset(char *, FILE *, char *, int *);void parse_trusted_mac_list(char *);#define LOCK_CONFIG() do { \	debug(LOG_DEBUG, "Locking config"); \	pthread_mutex_lock(&config_mutex); \	debug(LOG_DEBUG, "Config locked"); \} while (0)#define UNLOCK_CONFIG() do { \	debug(LOG_DEBUG, "Unlocking config"); \	pthread_mutex_unlock(&config_mutex); \	debug(LOG_DEBUG, "Config unlocked"); \} while (0)#endif /* _CONFIG_H_ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -