int load_config(struct gp_config *cfg) { struct gp_ini_context *ctx; const char *tmpstr; int tmpint = 0; int ret; ret = gp_init_ini_context(cfg->config_file, cfg->config_dir, &ctx); if (ret) { return ret; } ret = gp_config_get_string(ctx, "gssproxy", "debug", &tmpstr); if (ret == 0) { if (gp_boolean_is_true(tmpstr)) { gp_debug_enable(1); } } else if (ret != ENOENT) { goto done; } ret = gp_config_get_int(ctx, "gssproxy", "debug_level", &tmpint); if (ret == 0) { gp_debug_enable(tmpint); } else if (ret != ENOENT) { goto done; } ret = gp_config_get_string(ctx, "gssproxy", "run_as_user", &tmpstr); if (ret == 0) { cfg->proxy_user = strdup(tmpstr); if (!cfg->proxy_user) { ret = ENOMEM; goto done; } } else if (ret != ENOENT) { goto done; } ret = gp_config_get_int(ctx, "gssproxy", "worker threads", &cfg->num_workers); if (ret != 0 && ret != ENOENT) { goto done; } ret = load_services(cfg, ctx); done: if (ret != 0) { GPERROR("Error reading configuration %d: %s", ret, gp_strerror(ret)); } gp_config_close(ctx); safefree(ctx); return ret; }
RailSystem::RailSystem(string const &filename) { load_services(filename); }