void acl_master_params_load(const char *pathname) { const char *myname = "acl_master_params_load"; if (pathname == NULL || *pathname == 0) acl_msg_fatal("%s(%d), %s: input error", __FILE__, __LINE__, myname); if (cfg_parser != NULL) acl_cfg_parser_free(cfg_parser); init_master_vars(); cfg_parser = acl_cfg_parser_load(pathname, "=\t "); if (cfg_parser == NULL) acl_msg_fatal("%s(%d), %s: load file(%s) error(%s)", __FILE__, __LINE__, myname, pathname, strerror(errno)); update_master_conf_vars(cfg_parser); }
/* 将配置文件读入内存并进行分解 */ int aut_cfg_parse(const char *pathname) { const char *myname = "aut_cfg_parse"; ACL_CFG_PARSER *cfg_parser; ACL_CFG_LINE *cfg_line; int i, n; if (pathname == NULL || *pathname == 0) { aut_log_error("%s: invalid configure name", myname); return (-1); } __init(); cfg_parser = acl_cfg_parser_load(pathname, "|"); if (cfg_parser == NULL) { char tbuf[256]; aut_log_fatal("%s: open cfg_file(%s) error(%s)", myname, pathname, acl_last_strerror(tbuf, sizeof(tbuf))); } n = acl_cfg_parser_size(cfg_parser); for (i = 0; i < n; i++) { cfg_line = (ACL_CFG_LINE *) acl_cfg_parser_index(cfg_parser, i); if (cfg_line == NULL) break; if (cfg_line->ncount == 0) continue; __parse_cfg_line(cfg_line); } acl_cfg_parser_free(cfg_parser); return (0); }