wifidog auth server is not set

安装了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/2015/03/03/wifidog-auth-server-is-not-set.html 整理编辑,转载请注明出处

标签: wifidog认证 wifidog安装 wifidog原理 wifidog分析 wifidog配置 wifidog流程 wifidog服务器 wifidog-ddwrt wifidog openwrt