aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCassio de Campos <cassiopc@gmail.com>2017-11-06 08:16:09 +0000
committerCassio de Campos <cassiopc@gmail.com>2017-11-06 08:16:09 +0000
commitd05950d6b7a6f15abc90fb3999fa151125ec7023 (patch)
treeca41ede0997eaa63391119dae241ed96de7ee6c1
parent1184838f1f5289ef7135de4b566f78aa4a41af4a (diff)
downloadboca-d05950d6b7a6f15abc90fb3999fa151125ec7023.tar.gz
boca-d05950d6b7a6f15abc90fb3999fa151125ec7023.zip
clars must propagate regardless, runs only if not new
-rw-r--r--src/fextdata.php5
-rw-r--r--src/frun.php13
2 files changed, 15 insertions, 3 deletions
diff --git a/src/fextdata.php b/src/fextdata.php
index 2b2d007..ca66a45 100644
--- a/src/fextdata.php
+++ b/src/fextdata.php
@@ -558,7 +558,8 @@ function importFromXML($ar,$contest,$site,$tomain=false,$uptime=0,$mainsite=-1)
if(isset($param['usersitenumber']) && !isset($param['sitenumber'])) $param['sitenumber']=$param['usersitenumber'];
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 && $param['sitenumber'] != $mainsite)) {
+ if(!isset($param['sitenumber']) || ($param['sitenumber'] != $site && ($param['sitenumber'] != $mainsite || $tomain) &&
+ ($table != 'clartable' || $tomain))) {
$logstr .= "$serv - site mismatch should be [$site] and is [" . $param['sitenumber'] . "]\n";
LOGError("importFromXML: site mismatch should be [$site] and is [" . $param['sitenumber'] . "]");
continue;
@@ -635,7 +636,7 @@ function importFromXML($ar,$contest,$site,$tomain=false,$uptime=0,$mainsite=-1)
}
}
if($table == "runtable") {
- if(($ret=DBNewRun ($param, $conn))) {
+ if(($ret=DBNewRun ($param, $conn, $tomain))) {
if($ret==2) {
$logstr .= "$serv - Run " . $param['runnumber'] ."/".$param['sitenumber']." updated\n";
LOGInfo("importFromXML: Run " . $param['runnumber'] ."/".$param['sitenumber']." updated");
diff --git a/src/frun.php b/src/frun.php
index ed7f1b4..d920e74 100644
--- a/src/frun.php
+++ b/src/frun.php
@@ -644,7 +644,7 @@ function DBOpenRunsSNS($contest,$site,$st,$order='run') {
$a[$i] = DBRow($r,$i);
return $a;
}
-function DBNewRun($param,$c=null) {
+function DBNewRun($param,$c=null,$allowinsert=true) {
if(isset($param['contestnumber']) && !isset($param['contest'])) $param['contest']=$param['contestnumber'];
if(isset($param['sitenumber']) && !isset($param['site'])) $param['site']=$param['sitenumber'];
if(isset($param['runsitenumber']) && !isset($param['site'])) $param['site']=$param['runsitenumber'];
@@ -760,9 +760,20 @@ function DBNewRun($param,$c=null) {
$oid1 = $lr['autostdout'];
if(isset($lr['autostderr']))
$oid2 = $lr['autostderr'];
+ } else {
+ if(!$allowinsert) {
+ if($cw)
+ DBExec($c, "rollback work", "DBNewRun(rollback-noinsert)");
+ return -1;
+ }
}
$runinc = $runnumber - 1;
} else {
+ if(!$allowinsert) {
+ if($cw)
+ DBExec($c, "rollback work", "DBNewRun(rollback-noinsert)");
+ return -1;
+ }
$runnumber = $a["nextrun"] + 1;
DBExec($c, "update sitetable set sitenextrun=$runnumber" .
" where sitenumber=$site and contestnumber=$contest and sitenextrun<$runnumber", "DBNewRun(update site)");