安装了wifidog 的linux系统,在启动wifidog之后,可能会爆错误:"wifidog auth server is not set", 在wifidog的源码conf.c中找到:
static void
config_notnull(const void *parm, const char *parmname)
{
if (parm == NULL) {
debug(LOG_ERR, "%s is not set", parmname);
missing_parms = 1;
}
}
这个函数在下面调用:
void
config_validate(void)
{
config_notnull(config.gw_interface, "GatewayInterface");
config_notnull(config.auth_servers, "AuthServer");
if (missing_parms) {
debug(LOG_ERR, "Configuration is not complete, exiting...");
exit(-1);
}
}
而config_validate是在gataway.c的main里被调用:
config_init();
parse_commandline(argc, argv);
/* Initialize the config */
config_read(config->configfile);
config_validate();
整个config 设置的流程就是,先把默认值设置给全局变量config,然后将wifidog 的命令行参数传给config,然后是读wifidog的配置文件设置config,最后检查config参数是否有效,只要检查gateway interface和AuthServer。
在config_init中gw_interface和auth_servers初始化为NULL,也就是没有值;在命令行里也没有支持gw_interface和auth_servers的命令参数,所以我们可以通过修改wifidog.conf 的配置来最简单的解决上述问题。
GatewayInterface eth0
AuthServer {
Hostname 192.168.33.131
SSLAvailable no
Path /
}
另外我们也可以通过给wifidog 添加命令行参数来实现,这里就不详述了。
本文章由 http://www.wifidog.pro整理编辑,转载请注明出处
网友评论