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整理编辑,转载请注明出处

你可能感兴趣的:(wifidog 提示 auth server is not set)