int ACCT_MGR_INFO::init() { MIOFILE mf; FILE* p; int retval; clear(); p = fopen(ACCT_MGR_URL_FILENAME, "r"); if (!p) { // if not using acct mgr, make sure projects not flagged, // otherwise won't be able to detach them. // for (unsigned int i=0; i<gstate.projects.size(); i++) { gstate.projects[i]->attached_via_acct_mgr = false; } return 0; } mf.init_file(p); XML_PARSER xp(&mf); if (!xp.parse_start("acct_mgr_login")) { // } while (!xp.get_tag()) { if (!xp.is_tag) { printf("unexpected text: %s\n", xp.parsed_tag); continue; } if (xp.match_tag("/acct_mgr")) break; else if (xp.parse_str("name", project_name, 256)) continue; else if (xp.parse_str("url", master_url, 256)) continue; else if (xp.parse_bool("send_gui_rpc_info", send_gui_rpc_info)) continue; else if (xp.match_tag("signing_key")) { retval = xp.element_contents("</signing_key>", signing_key, sizeof(signing_key)); if (retval) { msg_printf(NULL, MSG_INFO, "error parsing <signing_key> in acct_mgr_url.xml" ); } continue; } else if (xp.parse_bool("cookie_required", cookie_required)) continue; else if (xp.parse_str("cookie_failure_url", cookie_failure_url, 256)) continue; if (log_flags.unparsed_xml) { msg_printf(NULL, MSG_INFO, "[unparsed_xml] ACCT_MGR_INFO::init: unrecognized %s", xp.parsed_tag ); } xp.skip_unexpected(log_flags.unparsed_xml, "ACCT_MGR_INFO::init"); } fclose(p); p = fopen(ACCT_MGR_LOGIN_FILENAME, "r"); if (p) { parse_login_file(p); fclose(p); } return 0; }
int ACCT_MGR_INFO::init() { char tag[1024]; bool is_tag; MIOFILE mf; FILE* p; int retval; clear(); p = fopen(ACCT_MGR_URL_FILENAME, "r"); if (!p) return 0; mf.init_file(p); XML_PARSER xp(&mf); if (!xp.parse_start("acct_mgr_login")) { // } while (!xp.get(tag, sizeof(tag), is_tag)) { if (!is_tag) { printf("unexpected text: %s\n", tag); continue; } if (!strcmp(tag, "/acct_mgr")) break; else if (xp.parse_str(tag, "name", acct_mgr_name, 256)) continue; else if (xp.parse_str(tag, "url", acct_mgr_url, 256)) continue; else if (xp.parse_bool(tag, "send_gui_rpc_info", send_gui_rpc_info)) continue; else if (!strcmp(tag, "signing_key")) { retval = xp.element_contents("</signing_key>", signing_key, sizeof(signing_key)); continue; } else if (xp.parse_bool(tag, "cookie_required", cookie_required)) continue; else if (xp.parse_str(tag, "cookie_failure_url", cookie_failure_url, 256)) continue; if (log_flags.unparsed_xml) { msg_printf(NULL, MSG_INFO, "[unparsed_xml] ACCT_MGR_INFO::init: unrecognized %s", tag ); } xp.skip_unexpected(tag, log_flags.unparsed_xml, "ACCT_MGR_INFO::init"); } fclose(p); p = fopen(ACCT_MGR_LOGIN_FILENAME, "r"); if (p) { parse_login_file(p); fclose(p); } return 0; }