diff options
| author | Cassio de Campos <cassiopc@gmail.com> | 2017-10-16 21:34:48 +0000 |
|---|---|---|
| committer | Cassio de Campos <cassiopc@gmail.com> | 2017-10-16 21:34:48 +0000 |
| commit | d8f2907fb00b701f91e6e98d33c4e6c0dd0619a5 (patch) | |
| tree | 2a8d0520e8f538d1cb31931b37c23ab095885890 | |
| parent | 1bfadfa27cb0b94d2063054ccf78f8bfedd62f59 (diff) | |
| download | boca-d8f2907fb00b701f91e6e98d33c4e6c0dd0619a5.tar.gz boca-d8f2907fb00b701f91e6e98d33c4e6c0dd0619a5.zip | |
bug fixes
| -rw-r--r-- | src/admin/header.php | 2 | ||||
| -rw-r--r-- | src/db.php | 4 | ||||
| -rw-r--r-- | src/fclar.php | 15 | ||||
| -rw-r--r-- | src/fextdata.php | 67 | ||||
| -rw-r--r-- | src/frun.php | 54 | ||||
| -rw-r--r-- | src/ftask.php | 11 | ||||
| -rwxr-xr-x | src/globals.php | 4 | ||||
| -rw-r--r-- | src/logexternal.php | 2 | ||||
| -rwxr-xr-x | src/private/autojudging.php | 25 | ||||
| -rw-r--r-- | src/scoretable.php | 2 |
10 files changed, 126 insertions, 60 deletions
diff --git a/src/admin/header.php b/src/admin/header.php index 1677469..d2cf43f 100644 --- a/src/admin/header.php +++ b/src/admin/header.php @@ -71,7 +71,7 @@ if(!isset($_POST['noflush'])) { echo " <td align=center><a class=menu style=\"font-weight:bold\" href=problem.php>Problems</a></td>\n"; echo " <td align=center><a class=menu style=\"font-weight:bold\" href=language.php>Languages</a></td>\n"; echo " <td align=center><a class=menu style=\"font-weight:bold\" href=answer.php>Answers</a></td>\n"; - // echo " <td align=center><a class=menu style=\"font-weight:bold\" href=export.php>Export</a></td>\n"; + echo " <td align=center><a class=menu style=\"font-weight:bold\" href=transfer.php>Transfer</a></td>\n"; //echo " </tr></table><hr><table border=0 width=\"100%\" align=center><tr>\n"; echo " </tr><tr>\n"; echo " <td align=center><a class=menu style=\"font-weight:bold\" href=task.php>Tasks</a></td>\n"; @@ -188,8 +188,8 @@ function DBExecNonStop($conn,$sql,$txt='') { if($txt=='') $txt='unknown at '. getFunctionName(); $result = @DB_pg_exec ($conn, $sql); if (!$result) { - LOGLevel("Unable to exec SQL in the database ($txt). " . - " Error=(" . pg_errormessage($conn) . ")", 2); + LOGError("Unable to exec SQL in the database ($txt). " . + " Error=(" . pg_errormessage($conn) . ")"); } return $result; } diff --git a/src/fclar.php b/src/fclar.php index fd99c53..72364e8 100644 --- a/src/fclar.php +++ b/src/fclar.php @@ -300,7 +300,7 @@ function DBNewClar($param,$c=null) { DBExec($c, "update sitetable set sitenextclar=$clarnumber" . " where sitenumber=$site and contestnumber=$contest and sitenextclar<$clarnumber", "DBNewClar(update site)"); - $clarnumber = myunique(); + $clarnumber = myunique($clarnumber); $clarinc = $clarnumber; } else { $sql = "select * from clartable as t where t.contestnumber=$contest and " . @@ -338,11 +338,14 @@ function DBNewClar($param,$c=null) { $ret=1; if($insert) { if($clarinc >= $clarnumber) { - while(!DBExecNonStop($c, "INSERT INTO clartable (contestnumber, clarsitenumber, clarnumber, usernumber, clardate, " . - "clardatediff, clardatediffans, clarproblem, clardata, claranswer, clarjudge, clarjudgesite, clarstatus, updatetime) VALUES " . - "($contest, $site, $clarnumber, $user, $clardate, $clardatediff, $clardatediffans, $problem, '$question', " . - "'$claranswer', $clarjudge, $clarjudgesite, '$clarstatus', $updatetime)", - "DBNewClar(insert clar)")) { + while(true) { + DBExec($c,"SAVEPOINT sp" . $clarnumber,"DBNewClar(insert clar sp)"); + if(DBExecNonStop($c, "INSERT INTO clartable (contestnumber, clarsitenumber, clarnumber, usernumber, clardate, " . + "clardatediff, clardatediffans, clarproblem, clardata, claranswer, clarjudge, clarjudgesite, clarstatus, updatetime) VALUES " . + "($contest, $site, $clarnumber, $user, $clardate, $clardatediff, $clardatediffans, $problem, '$question', " . + "'$claranswer', $clarjudge, $clarjudgesite, '$clarstatus', $updatetime)", + "DBNewClar(insert clar)")) break; + DBExec($c,"ROLLBACK TO SAVEPOINT sp" . $clarnumber,"DBNewClar(insert clar sp rollback)"); $clarnumber++; if($clarnumber > $clarinc + 3) break; } diff --git a/src/fextdata.php b/src/fextdata.php index c7ebc31..6df8fbe 100644 --- a/src/fextdata.php +++ b/src/fextdata.php @@ -15,7 +15,7 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. //////////////////////////////////////////////////////////////////////////////// -// Last modified 10/aug/2017 by cassio@ime.usp.br +// Last modified 16/oct/2017 by cassio@ime.usp.br function makeurlhttps($siteurl) { if(substr($siteurl,0,7) == 'http://') @@ -236,7 +236,7 @@ function getMainXML($contest,$timeo=5) { if ($c==null) return false; $r = DBExec($c, "select * from contesttable where contestnumber=$contest"); if (DBnLines($r)==0) { - echo "Unable to find the contest $contest in the database."; + echo "Unable to find the contest $contest in the database.\n"; LOGError("Unable to find the contest $contest in the database."); return false; } @@ -264,12 +264,15 @@ function getMainXML($contest,$timeo=5) { $opts = array(); $opts['http']['timeout'] = $timeo; $context = stream_context_create($opts); + echo "<pre>"; + echo "Connecting to ". $siteurl . "\n"; try { $sess = @file_get_contents($siteurl . "index.php?getsessionid=1", 0, $context); } catch(Exception $e) { $sess=false; } if($sess===false) { + echo "timeout at connection\n</pre>"; LOGError("getMainXML: timeout at get session id for $siteurl"); return false; } @@ -288,19 +291,21 @@ function getMainXML($contest,$timeo=5) { $opts['http']['header'] .= "\r\nProxy-Authorization: Basic " . $bocaproxypass; $opts['http']['timeout'] = $timeo; $context = stream_context_create($opts); + echo "Authorizing\n"; try { $ok = @file_get_contents($siteurl . "index.php?name=${user}&password=${res}&action=transfer", 0, $context); } catch(Exception $e) { $ok=false; } if($ok===false) { + echo "timeout at authorization\n</pre>"; LOGError("getMainXML: timeout at login for $siteurl"); return false; } $ti = mytime(); // LOGError("ok=" . $ok); if(substr($ok,strlen($ok)-strlen('TRANSFER OK'),strlen('TRANSFER OK')) == 'TRANSFER OK') { - + echo "Generating local data\n"; $data = encryptData(generateSiteXML($contest, $localsite, $updatetime-30),myhash(trim($sitedata[2]))); $data_url = http_build_query(array('xml' => $data, 'updatetime' => ($updatetime-30) @@ -320,27 +325,35 @@ function getMainXML($contest,$timeo=5) { $opts['http']['header'] .= "\r\nProxy-Authorization: Basic " . $bocaproxypass; $opts['http']['timeout'] = $timeo; $context = stream_context_create($opts); + echo "Transferring data\n"; try { $s = @file_get_contents($siteurl . "site/getsite.php", 0, $context); } catch(Exception $e) { $s=false; } if($s===false) { + echo "timeout at transferring\n</pre>"; LOGError("getMainXML: timeout at transfer for $siteurl"); return false; } - - if(strpos($s,'<OK>') !== false) + $chstr = "<!-- <OK> -->\n"; + if(strpos($s,$chstr) !== false) { + echo "Transfer succeeded\n"; LOGInfo("xmltransfer: OK"); - else + } else { + echo "Transfer error (" . $s . ")\n"; LOGError("xmltransfer: failed (" . $s . ")"); + } - $s = substr($s, strpos($s, "\n") + 1); + echo "Processing received data\n"; + $s = substr($s, strpos($s, $chstr) + strlen($chstr)); // LOGError("string: " . substr($s,0,50)); $s = decryptData($s,myhash (trim($sitedata[2])),'xml from main not ok'); if(strtoupper(substr($s,0,5)) != "<XML>") { + echo "Data corrupted\n</pre>"; return false; } + echo "Importing data to local server\n"; if(importFromXML($s, $contest, $localsite, false, 1+$ct['updatetime'])) { $str = $sitedata[0] . ' ' . $sitedata[1] . ' ' . $sitedata[2] . ' ' . $ti; $ti = 2+$ct['updatetime']; @@ -348,16 +361,20 @@ function getMainXML($contest,$timeo=5) { DBUpdateContest ($param, null); return true; } else { + echo "Importing error\n"; LOGError("error importing xml"); } } else { + echo "Transfer error (" . $ok . ")\n"; LOGError("xmltransfer: failed (" . $ok . ")"); } + echo "</pre>\n"; return false; } function importFromXML($ar,$contest,$site,$tomain=false,$uptime=0) { LOGInfo("importFromXML: contest $contest site $site tomain $tomain"); + if($tomain) $serv='Main'; else $serv='Local'; $data = implode("",explode("\n",$ar)); $parser = xml_parser_create(''); xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 1); @@ -372,6 +389,7 @@ function importFromXML($ar,$contest,$site,$tomain=false,$uptime=0) { // DBExec($conn,"lock","importFromXML(lock)"); $r = DBExec($conn, "select * from contesttable where contestnumber=$contest"); if (DBnLines($r)==0) { + echo "$serv - error finding contest $contest \n"; LOGError("importFromXML: Unable to find the contest $contest in the database."); // DBExec($conn,"rollback work"); return false; @@ -411,10 +429,12 @@ function importFromXML($ar,$contest,$site,$tomain=false,$uptime=0) { if($uptime > 0) $param['updatetime']=$uptime; if(($ret=DBUpdateContest ($param, $conn))) { if($ret==2) { + echo "$serv - Contest " . $param["contestnumber"] . " updated\n"; LOGInfo("importFromXML: Contest " . $param["contestnumber"] . " updated"); } } else { + echo "$serv - error to update $table ". $param["contestnumber"] . "\n"; LOGError("importFromXML: error to update $table ". $param["contestnumber"]); if($conn != null) DBExec($conn,"rollback work"); @@ -427,10 +447,12 @@ function importFromXML($ar,$contest,$site,$tomain=false,$uptime=0) { if(!$tomain && $table == "answertable") { if(($ret=DBNewAnswer ($contest, $param, $conn))) { if($ret==2) { + echo "$serv - Answer " . $param["answernumber"] . " updated\n"; LOGInfo("importFromXML: Answer " . $param["answernumber"] . " updated"); } } else { + echo "$serv - error to update $table ". $param["answernumber"] . "\n"; LOGError("importFromXML: error to update $table ". $param["answernumber"]); if($conn != null) DBExec($conn,"rollback work"); @@ -440,10 +462,12 @@ function importFromXML($ar,$contest,$site,$tomain=false,$uptime=0) { if(!$tomain && $table == "langtable") { if(($ret=DBNewLanguage ($contest,$param, $conn))) { if($ret==2) { + echo "$serv - Language " . $param['langnumber'] ." updated\n"; LOGInfo("importFromXML: Language " . $param['langnumber'] ." updated"); } } else { + echo "$serv - error to update $table ". $param['langnumber'] . "\n"; LOGError("importFromXML: error to update $table ". $param['langnumber']); if($conn != null) DBExec($conn,"rollback work"); @@ -453,9 +477,11 @@ function importFromXML($ar,$contest,$site,$tomain=false,$uptime=0) { if(!$tomain && $table == "problemtable") { if(($ret=DBNewProblem ($contest,$param, $conn))) { if($ret==2) + echo "$serv - Problem " . $param['problemnumber'] ." updated\n"; LOGInfo("importFromXML: Problem " . $param['problemnumber'] ." updated"); } else { + echo "$serv - error to update $table ". $param['problemnumber'] . "\n"; LOGError("importFromXML: error to update $table " . $param['problemnumber']); if($conn != null) DBExec($conn,"rollback work"); @@ -466,11 +492,13 @@ function importFromXML($ar,$contest,$site,$tomain=false,$uptime=0) { if(isset($param['clarsitenumber']) && !isset($param['sitenumber'])) $param['sitenumber']=$param['clarsitenumber']; if(isset($param['runsitenumber']) && !isset($param['sitenumber'])) $param['sitenumber']=$param['runsitenumber']; if(!isset($param['sitenumber']) || $param['sitenumber'] != $site) { + echo "$serv - site mismatch $site " . $param['sitenumber'] . "\n"; LOGError("importFromXML: site mismatch $site " . $param['sitenumber']); continue; } if($tomain && $table == "sitetable") { if(!DBNewSite($contest, $conn, $param)) { + echo "$serv - error to update $table \n"; LOGError("importFromXML: error to update $table"); if($conn != null) DBExec($conn,"rollback work"); @@ -478,9 +506,11 @@ function importFromXML($ar,$contest,$site,$tomain=false,$uptime=0) { } if(($ret=DBUpdateSite($param, $conn))) { if($ret==2) { + echo "$serv - Site " . $param["sitenumber"] . " updated\n"; LOGInfo("importFromXML: Site " . $param["sitenumber"] . " updated"); } } else { + echo "$serv - error to update $table ". $param["sitenumber"] . "\n"; LOGError("importFromXML: error to update $table ". $param["sitenumber"]); if($conn != null) DBExec($conn,"rollback work"); @@ -489,6 +519,7 @@ function importFromXML($ar,$contest,$site,$tomain=false,$uptime=0) { } if($tomain && $table == "sitetimetable") { if(!DBUpdateSiteTime($contest, $param, $firsttimetime, $conn)) { + echo "$serv - error to update $table \n"; LOGError("importFromXML: error to update $table"); if($conn != null) DBExec($conn,"rollback work"); @@ -501,9 +532,11 @@ function importFromXML($ar,$contest,$site,$tomain=false,$uptime=0) { if($table == "usertable") { if(($ret=DBNewUser($param, $conn))) { if($ret==2) { + echo "$serv - User " . $param["usernumber"]."/".$param['sitenumber']. " updated\n"; LOGInfo("importFromXML: User " . $param["usernumber"]."/".$param['sitenumber']. " updated"); } } else { + echo "$serv - error to update $table ". $param["usernumber"]."/".$param['sitenumber'] . "\n"; LOGError("importFromXML: error to update $table ". $param["usernumber"]."/".$param['sitenumber']); if($conn != null) DBExec($conn,"rollback work"); @@ -512,10 +545,13 @@ function importFromXML($ar,$contest,$site,$tomain=false,$uptime=0) { } if($table == "tasktable") { if(($ret=DBNewTask ($param, $conn))) { - if($ret==2) + if($ret==2) { + echo "$serv - Task " . $param['tasknumber']."/".$param['sitenumber']." updated\n"; LOGInfo("importFromXML: Task " . $param['tasknumber']."/".$param['sitenumber']." updated"); + } } else { + echo "$serv - error to update $table " . $param['tasknumber']."/".$param['sitenumber'] . "\n"; LOGError("importFromXML: error to update $table " . $param['tasknumber']."/".$param['sitenumber']); if($conn != null) DBExec($conn,"rollback work"); @@ -524,10 +560,13 @@ function importFromXML($ar,$contest,$site,$tomain=false,$uptime=0) { } if($table == "clartable") { if(($ret=DBNewClar ($param, $conn))) { - if($ret==2) + if($ret==2) { + echo "$serv - Clarification " . $param['clarnumber']."/".$param['sitenumber'] ." updated\n"; LOGInfo("importFromXML: Clarification " . $param['clarnumber']."/".$param['sitenumber'] ." updated"); + } } else { + echo "$serv - error to update $table ". $param['clarnumber']."/".$param['sitenumber'] . "\n"; LOGError("importFromXML: error to update $table ". $param['clarnumber']."/".$param['sitenumber']); if($conn != null) DBExec($conn,"rollback work"); @@ -536,10 +575,13 @@ function importFromXML($ar,$contest,$site,$tomain=false,$uptime=0) { } if($table == "runtable") { if(($ret=DBNewRun ($param, $conn))) { - if($ret==2) + if($ret==2) { + echo "$serv - Run " . $param['runnumber'] ."/".$param['sitenumber']." updated\n"; LOGInfo("importFromXML: Run " . $param['runnumber'] ."/".$param['sitenumber']." updated"); + } } else { + echo "$serv - error to update $table ". $param['runnumber'] ."/".$param['sitenumber'] . "\n"; LOGError("importFromXML: error to update $table ". $param['runnumber'] ."/".$param['sitenumber']); if($conn != null) DBExec($conn,"rollback work"); @@ -550,7 +592,8 @@ function importFromXML($ar,$contest,$site,$tomain=false,$uptime=0) { } } } - // DBExec($conn,"commit work","importFromXML(commit)"); + if($conn != null) + DBExec($conn,"commit work","importFromXML(commit)"); return true; } @@ -601,7 +644,7 @@ function generateSiteXML($contest,$site,$updatetime) { } } $str .= "</XML>\n"; - DBExec($c,"commit work","generateXML(commit)"); + DBExec($c,"commit work","generateSiteXML(commit)"); LOGInfo("xml data generated for contest $contest site $site at time $updatetime"); return $str; } diff --git a/src/frun.php b/src/frun.php index 3624456..20fb616 100644 --- a/src/frun.php +++ b/src/frun.php @@ -481,21 +481,22 @@ function DBUpdateRunAutojudging($contest, $site, $number, $ip, $answer, $stdout, $b = DBSiteInfo($contest, $site, $c); - if( true || - $a["runproblem"] == 1 || - $a["runproblem"] == 2 || - $a["runproblem"] == 3 || - $a["runproblem"] == 4 || - $a["runproblem"] == 5 || - $a["runproblem"] == 6 || - $a["runproblem"] == 7 || - $a["runproblem"] == 8 || - $a["runproblem"] == 9 || - $a["runproblem"] == 10 || - $a["runproblem"] == 11 || - $a["runproblem"] == 12 || - $a["runproblem"] == 13 || - ($retval != 1 && $retval != 6)) { + if(true || //cassiopc remove the true here if you want this to take effect + (($retval != 1 || // for some problems, YES is not automatic + $a["runproblem"] == 1 || + $a["runproblem"] == 2 || + $a["runproblem"] == 3 || + $a["runproblem"] == 4 || + $a["runproblem"] == 5 || + $a["runproblem"] == 6 || + $a["runproblem"] == 7 || + $a["runproblem"] == 8 || + $a["runproblem"] == 9 || + $a["runproblem"] == 10 || + $a["runproblem"] == 11 || + $a["runproblem"] == 12 || + $a["runproblem"] == 13) + && $retval != 4 && $retval != 6)) { // but WA and TLE are automatic for all problems if($b["siteautojudge"]!="t") { // && (($retval != 1 && $retval != 6) || $a["runproblem"] == 1 || $a["runproblem"] == 2) ) { //cassiopc incluir automatic judging of some codes 1:YES WA:6 @@ -608,6 +609,8 @@ function DBOpenRunsSNS($contest,$site,$st,$order='run') { $sql .= " and (u.usertype != 'judge')"; $sql .= " and (not r.runstatus = 'judged') " . " and not r.runstatus ~ 'deleted' order by "; + } else if($st == 2) { + $sql .= " and (not r.runanswer1 = 0) and (not r.runanswer2 = 0) and (not r.runstatus = 'judged') order by "; } else $sql .= " order by "; if($order == "site") @@ -760,7 +763,7 @@ function DBNewRun($param,$c=null) { $runnumber = $a["nextrun"] + 1; DBExec($c, "update sitetable set sitenextrun=$runnumber" . " where sitenumber=$site and contestnumber=$contest and sitenextrun<$runnumber", "DBNewRun(update site)"); - $runnumber = myunique(); + $runnumber = myunique($runnumber); $runinc = $runnumber; } @@ -855,14 +858,17 @@ function DBNewRun($param,$c=null) { } if($runinc >= $runnumber) { - while(!DBExecNonStop($c, "INSERT INTO runtable (contestnumber, runsitenumber, runnumber, usernumber, rundate, " . - "rundatediff, rundatediffans, runproblem, runfilename, rundata, runanswer, runstatus, runlangnumber, " . - "runjudge, runjudgesite, runanswer1, runjudge1, runjudgesite1, runanswer2, runjudge2, runjudgesite2, ". - "autoip, autobegindate, autoenddate, autoanswer, autostdout, autostderr, updatetime) " . - "VALUES ($contest, $site, $runnumber, $user, $rundate, $rundatediff, $rundatediffans, $problem, '$filename', $oid, $runanswer, " . - "'$runstatus', $lang, $runjudge, $runjudgesite, $runanswer1, $runjudge1, $runjudgesite1, $runanswer2, $runjudge2, " . - "$runjudgesite2, '$autoip', $autobegindate, $autoenddate, '$autoanswer', $oid1, $oid2, $updatetime)", - "DBNewRun(insert run)")) { + while(true) { + DBExec($c,"SAVEPOINT sp" . $runnumber,"DBNewRun(insert run sp)"); + if(DBExecNonStop($c, "INSERT INTO runtable (contestnumber, runsitenumber, runnumber, usernumber, rundate, " . + "rundatediff, rundatediffans, runproblem, runfilename, rundata, runanswer, runstatus, runlangnumber, " . + "runjudge, runjudgesite, runanswer1, runjudge1, runjudgesite1, runanswer2, runjudge2, runjudgesite2, ". + "autoip, autobegindate, autoenddate, autoanswer, autostdout, autostderr, updatetime) " . + "VALUES ($contest, $site, $runnumber, $user, $rundate, $rundatediff, $rundatediffans, $problem, '$filename', $oid, $runanswer, " . + "'$runstatus', $lang, $runjudge, $runjudgesite, $runanswer1, $runjudge1, $runjudgesite1, $runanswer2, $runjudge2, " . + "$runjudgesite2, '$autoip', $autobegindate, $autoenddate, '$autoanswer', $oid1, $oid2, $updatetime)", + "DBNewRun(insert run)")) break; + DBExec($c,"ROLLBACK TO SAVEPOINT sp" . $runnumber,"DBNewRun(insert run sp rollback)"); $runnumber++; if($runnumber > $runinc + 3) break; } diff --git a/src/ftask.php b/src/ftask.php index 73336c3..c54503a 100644 --- a/src/ftask.php +++ b/src/ftask.php @@ -396,7 +396,7 @@ function DBNewTask($param, $c=null, $autotask=false) { $tasknumber = $a["nexttask"] + 1; DBExec($c, "update sitetable set sitenexttask=$tasknumber" . " where sitenumber=$site and contestnumber=$contest and sitenexttask<$tasknumber", "DBNewTask(update site)"); - $taskinc = myunique(); + $taskinc = myunique($tasknumber); if(($taskinc % 2) == 0) $taskinc--; if($autotask) $taskinc++; $tasknumber = $taskinc; @@ -435,12 +435,17 @@ function DBNewTask($param, $c=null, $autotask=false) { } else $oid="NULL"; if($taskinc >= $tasknumber) { - while(!DBExecNonStop($c, "INSERT INTO tasktable (contestnumber, sitenumber, tasknumber, usernumber, taskdate, " . + while(true) { + DBExec($c,"SAVEPOINT sp" . $tasknumber,"DBNewTask(insert task sp)"); + if(DBExecNonStop($c, "INSERT INTO tasktable (contestnumber, sitenumber, tasknumber, usernumber, taskdate, " . "taskdatediff, taskdatediffans, taskfilename, taskdata, taskstatus, taskdesc, tasksystem, ". "color, colorname, updatetime) " . "VALUES ($contest, $site, $tasknumber, $user, $taskdate, $taskdatediff, $taskdatediffans, '$filename', $oid, '$status', " . "'$desc', '$sys', '$color', '$colorname', $updatetime)", - "DBNewTask(insert task)")) { + "DBNewTask(insert task)")) { + break; + } + DBExec($c,"ROLLBACK TO SAVEPOINT sp" . $tasknumber,"DBNewTask(insert task sp rollback)"); $tasknumber+=2; if($tasknumber > $taskinc + 6) { DBExec($c, "INSERT INTO tasktable (contestnumber, sitenumber, tasknumber, usernumber, taskdate, " . diff --git a/src/globals.php b/src/globals.php index cb7c419..4c387fc 100755 --- a/src/globals.php +++ b/src/globals.php @@ -284,8 +284,8 @@ function mytime() { function mymtime() { return microtime(true); } -function myunique() { - return ((int)(100*microtime(true))) % 100000000; +function myunique($val=0) { + return (((int)(100*microtime(true))) % 10000000)*100 + ($val % 100); } //retorna data e hora atuais function now () { diff --git a/src/logexternal.php b/src/logexternal.php index 402fe9c..b85aaef 100644 --- a/src/logexternal.php +++ b/src/logexternal.php @@ -45,7 +45,7 @@ if(isset($_POST["comp"]) && $_POST["comp"] != "" ) { $p = myhash($secret[2] . session_id()); if($p == $password) { @mkdir('/var/www/boca/src/private/logexternal/',0770,true); - @file_put_contents("/var/www/boca/src/private/logexternal/" . $secret[0] . '.' . $name, base64_decode($_POST['data']), LOCK_EX | FILE_APPEND); + @file_put_contents("/var/www/boca/src/private/logexternal/" . $secret[0] . '.' . $name, '\nbegin ' . time() . ' ' . base64_decode($_POST['data']), LOCK_EX | FILE_APPEND); @file_put_contents("/var/www/boca/src/private/logexternal/logexternal.log", $name . "|" . $secret[0] . '|' . date(DATE_RFC2822) . "\n", LOCK_EX | FILE_APPEND); echo "ok\n"; exit; diff --git a/src/private/autojudging.php b/src/private/autojudging.php index dcb7398..2a8b1ed 100755 --- a/src/private/autojudging.php +++ b/src/private/autojudging.php @@ -44,7 +44,7 @@ if(system('test "`id -u`" -eq "0"',$retval)===false || $retval!=0) { exit; } -ini_set('memory_limit','600M'); +ini_set('memory_limit','1200M'); ini_set('output_buffering','off'); ini_set('implicit_flush','on'); @ob_end_flush(); @@ -487,10 +487,14 @@ while(42) { $answertmp = substr(trim($dif[count($dif)-1]),0,200); $answertmp = sanitizeText($answertmp); fclose($fp); + /* foreach (glob($dir . $ds . '*') as $fne) { - @chown($fne,"nobody"); - @chmod($fne,0755); + if(is_file($fne)) { + @chown($fne,"nobody"); + @chmod($fne,0755); + } } + */ // retval 5 (presentation) and retval 6 (wronganswer) are already compatible with the compare script if($localretval < 4 || $localretval > 6) { // contact staff @@ -616,9 +620,14 @@ while(42) { if(count($ans) > 0) $anstmp = substr(trim(escape_string($ans[count($ans)-1])),0,100); unset($ans); - $answer = "(probably runtime error - unusual code: $retval) " . $anstmp; - // runtime error - $retval = 3; + if(strpos(file_get_contents('allerr'),'Error: Could not find or load main class') === false) { + $answer = "(probably runtime error - unusual code: $retval) " . $anstmp; + // runtime error + $retval = 3; + } else { + $answer = "(probably wrong name of class - unusual code: $retval) "; // . $anstmp; + $retval = 8; + } } if($retval == 0 || $retval > 9) { $ans = file("allout"); @@ -638,7 +647,7 @@ while(42) { //echo "err==> "; system("tail -n1 ". $dir.$ds.'allerr'); $answer=substr($answer,0,200); DBUpdateRunAutojudging($contest, $site, $number, $ip, $answer, $dir.$ds.'allout', $dir.$ds.'allerr', $retval); - LogLevel("Autojudging: answered '$answer' (run=$number, site=$site, contest=$contest)",3); - echo "Autojudging answered '$answer' (contest=$contest, site=$site, run=$number)\n"; + LogLevel("Autojudging: answered $retval '$answer' (run=$number, site=$site, contest=$contest)",3); + echo "Autojudging answered $retval '$answer' (contest=$contest, site=$site, run=$number)\n"; } ?> diff --git a/src/scoretable.php b/src/scoretable.php index 850ee9a..3d69ba5 100644 --- a/src/scoretable.php +++ b/src/scoretable.php @@ -143,7 +143,7 @@ if($_SESSION["usertable"]["usertype"]=='score' || $_SESSION["usertable"]["userty } @fclose($fp); - getMainXML($_SESSION["usertable"]["contestnumber"]); + //getMainXML($_SESSION["usertable"]["contestnumber"]); @unlink($destination . ".lck"); } else { |