AST* readASTMisc(BufferedReader *reader) { uint8_t type = reader->readByte(); if (VERBOSITY("parsing") >= 2) printf("type = %d\n", type); if (type == 0) return NULL; uint8_t checkbyte = reader->readByte(); assert(checkbyte == 0xae); switch (type) { case AST_TYPE::alias: return read_alias(reader); case AST_TYPE::arguments: return read_arguments(reader); case AST_TYPE::comprehension: return read_comprehension(reader); case AST_TYPE::keyword: return read_keyword(reader); case AST_TYPE::Module: return read_module(reader); default: fprintf(stderr, "Unknown node type (parser.cpp:" STRINGIFY(__LINE__) "): %d\n", type); exit(1); break; } }
/*************************************************************************** Function: cgiMain Description: Input: Output: Return: 0 OK, other Error Others: none ***************************************************************************/ int cgiMain() { char account[FEATURE_GDGL_ACCOUNT_MAX_LEN + 1]; //16 + terminating null char password[FEATURE_GDGL_PASSWD_MAX_LEN + 1]; //16 + terminating null char gateway_id[FEATURE_GDGL_ID_LEN + 1]; //12 + terminating null char gateway_alias[FEATURE_GDGL_ACCOUNT_MAX_LEN + 1]; char gateway_passwd[FEATURE_GDGL_PASSWD_MAX_LEN + 1]; cgiFormResultType cgi_re; int res; cgiHeaderContentType("application/json"); //MIME // Read ID res = read_id(gateway_id); if (res != 0) { client_admin_response("noid", res, clientAdminResultStr[res]); return res; } // Read alias res = read_alias(gateway_alias); if (res != 0) { client_admin_response(gateway_id, res, clientAdminResultStr[res]); return res; } // Read password res = read_password(gateway_passwd); if (res != 0) { client_admin_response(gateway_id, res, clientAdminResultStr[res]); return res; } // Check account cgi_re = cgiFormString("account", account, FEATURE_GDGL_ACCOUNT_MAX_LEN + 1); res = check_account(cgi_re, account, gateway_id, gateway_alias); if (res != 0) { client_admin_response(gateway_id, res, clientAdminResultStr[res]); return res; } // Check password cgi_re = cgiFormString("password", password, FEATURE_GDGL_PASSWD_MAX_LEN + 1); res = check_password(cgi_re, password, gateway_passwd); if (res != 0) { client_admin_response(gateway_id, res, clientAdminResultStr[res]); return res; } // account & password all right client_admin_response(gateway_id, clientAdminSuccess, clientAdminResultStr[clientAdminSuccess]); return 0; }