void _update_user_http(char * user_id) { const char * cmd=" wget --post-data=\"updateuser=1&user_id=%s\" --load-cookies=cookie --save-cookies=cookie --keep-session-cookies -q -O - \"%s/admin/problem_judge.php\""; FILE * fjobs=read_cmd_output(cmd,user_id,http_baseurl); //fscanf(fjobs,"%d",&ret); pclose(fjobs); }
/* Runs the command in shell and returns its output (joined standard output and * standard error streams). All trailing newline characters are stripped to * allow easy appending to command output. Returns the output. */ static var_t system_builtin(const call_info_t *call_info) { var_t result; char *cmd; FILE *cmd_stream; size_t cmd_out_len; var_val_t var_val; cmd = var_to_string(call_info->argv[0]); cmd_stream = read_cmd_output(cmd); free(cmd); ui_cancellation_enable(); var_val.string = read_nonseekable_stream(cmd_stream, &cmd_out_len); ui_cancellation_disable(); fclose(cmd_stream); if(var_val.string == NULL) { var_val.string = ""; return var_new(VTYPE_STRING, var_val); } /* Remove trailing new line characters. */ while(cmd_out_len != 0U && var_val.string[cmd_out_len - 1] == '\n') { var_val.string[cmd_out_len - 1] = '\0'; --cmd_out_len; } result = var_new(VTYPE_STRING, var_val); free(var_val.string); return result; }
void _addreinfo_http(int solution_id) { char reinfo[(1 << 16)], *rend; char * reinfo_encode; FILE *fp = fopen("error.out", "r"); rend = reinfo; while (fgets(rend, 1024, fp)) { rend += strlen(rend); if (rend - reinfo > 40000) break; } fclose(fp); reinfo_encode=url_encode(reinfo); FILE * re=fopen("re.post","w"); fprintf(re,"addreinfo=1&sid=%d&reinfo=%s",solution_id,reinfo_encode); fclose(re); free(reinfo_encode); const char * cmd=" wget --post-file=\"re.post\" --load-cookies=cookie --save-cookies=cookie --keep-session-cookies -q -O - \"%s/admin/problem_judge.php\""; FILE * fjobs=read_cmd_output(cmd,http_baseurl); //fscanf(fjobs,"%d",&ret); pclose(fjobs); }
void login(){ if(!check_login()){ const char * cmd="wget --post-data=\"user_id=%s&password=%s\" --load-cookies=cookie --save-cookies=cookie --keep-session-cookies -q -O - \"%s/login.php\""; FILE * fjobs=read_cmd_output(cmd,http_username,http_password,http_baseurl); //fscanf(fjobs,"%d",&ret); pclose(fjobs); } }
bool check_login(){ const char * cmd=" wget --post-data=\"checklogin=1\" --load-cookies=cookie --save-cookies=cookie --keep-session-cookies -q -O - \"%s/admin/problem_judge.php\""; int ret=0; FILE * fjobs=read_cmd_output(cmd,http_baseurl); fscanf(fjobs,"%d",&ret); pclose(fjobs); return ret; }
void _get_problem_info_http(int p_id, int & time_lmt, int & mem_lmt, int & isspj) { //login(); const char * cmd="wget --post-data=\"getprobleminfo=1&pid=%d\" --load-cookies=cookie --save-cookies=cookie --keep-session-cookies -q -O - \"%s/admin/problem_judge.php\""; FILE * pout=read_cmd_output(cmd,p_id,http_baseurl); fscanf(pout,"%d",&time_lmt); fscanf(pout,"%d",&mem_lmt); fscanf(pout,"%d",&isspj); pclose(pout); }
FILE * use_info_prog(const char viewer[]) { FILE *fp; char *cmd; cmd = get_viewer_command(viewer); fp = read_cmd_output(cmd); free(cmd); return fp; }
void _get_solution_info_http(int solution_id, int & p_id, char * user_id, int & lang) { login(); const char * cmd="wget --post-data=\"getsolutioninfo=1&sid=%d\" --load-cookies=cookie --save-cookies=cookie --keep-session-cookies -q -O - \"%s/admin/problem_judge.php\""; FILE * pout=read_cmd_output(cmd,solution_id,http_baseurl); fscanf(pout,"%d",&p_id); fscanf(pout,"%s",user_id); fscanf(pout,"%d",&lang); pclose(pout); }
void _get_solution_http(int solution_id, char * work_dir, int lang) { char src_pth[BUFFER_SIZE]; // create the src file sprintf(src_pth, "Main.%s", lang_ext[lang]); if (DEBUG) printf("Main=%s", src_pth); //login(); const char * cmd2="wget --post-data=\"getsolution=1&sid=%d\" --load-cookies=cookie --save-cookies=cookie --keep-session-cookies -q -O %s \"%s/admin/problem_judge.php\""; FILE * pout=read_cmd_output(cmd2,solution_id,src_pth,http_baseurl); pclose(pout); }
void _update_solution_http(int solution_id, int result, int time, int memory,int sim, int sim_s_id,double pass_rate) { const char * cmd=" wget --post-data=\"update_solution=1&sid=%d&result=%d&time=%d&memory=%d&sim=%d&simid=%d&pass_rate=%f\" --load-cookies=cookie --save-cookies=cookie --keep-session-cookies -q -O - \"%s/admin/problem_judge.php\""; FILE * fjobs=read_cmd_output(cmd,solution_id,result, time, memory, sim, sim_s_id,pass_rate,http_baseurl); //fscanf(fjobs,"%d",&ret); pclose(fjobs); }