. //////////////////////////////////////////////////////////////////////////////// //Last updated 16/oct/2017 by cassio@ime.usp.br require 'header.php'; ?>
     
Done\n"; else echo "
Error (likely permission/ownership issues)
\n"; } if (isset($_POST["Submit4"]) && $_POST["Submit5"] == "Full clear") { if(fixbocadir(dirname(__DIR__),true)) echo "
Done
\n"; else echo "
Error (likely permission/ownership issues)
\n"; } if (isset($_POST["Submit4"]) && $_POST["Submit6"] == "Update BOCA") { require('..' . $ds . 'versionnum.php'); $curv = split('.',$BOCAVERSION); $dir = dirname(__DIR__); fixbocadir($dir); $tmpfname = tempnam(sys_get_temp_dir()); if(($str = @file_get_contents('http://www.bombonera.org/updateboca.zip')) !== false) { @file_put_contents($tmpfname, $str); $t = mytime(); $zip = new ZipArchive; if ($zip->open($tmpfname) === true) { $zip->extractTo($dir . $ds . "private" . $ds . "newboca." . $t); $zip->close(); require($dir . $ds . "private" . $ds . "newboca." . $t . $ds . 'versionnum.php'); $newv = split('.',$BOCAVERSION); if($curv[0] != $newv[0] || $curv[1] != $newv[1]) echo "
Cannot updated because of major version difference
"; else { if(updatebocafile($dir, $dir . $ds . "private" . $ds . "newboca." . $t, $t) === false) echo "
Error updating BOCA
\n"; else { echo "
Updated to " . $BOCAVERSION . "\n
\n"; } } } else { echo "
Downloaded file corrupted
"; } } else echo "
Download error
"; } $privatedir = $_SESSION['locr'] . $ds . "private"; $remotedir = $_SESSION['locr'] . $ds . "private" . $ds . "remotescores"; $destination = $remotedir . $ds ."scores.zip"; if(is_writable($remotedir)) { if(($fp = @fopen($destination . ".lck",'x')) !== false) { if($doscore) { if (($s = DBSiteInfo($_SESSION["usertable"]["contestnumber"],$_SESSION["usertable"]["usersitenumber"])) == null) ForceLoad("index.php"); echo "
\n";
      echo "Building scores\n";
      $level=$s["sitescorelevel"];
      $data0 = array();
      if($level>0) {
	list($score,$data0) = DBScoreSite($_SESSION["usertable"]["contestnumber"], 
					  $_SESSION["usertable"]["usersitenumber"], 0, -1);
      }
      $ct=DBGetActiveContest();
      $localsite=$ct['contestlocalsite'];
      $fname = $privatedir . $ds . "score_localsite_" . $localsite . "_x"; // . md5($_SERVER['HTTP_HOST']);
      @file_put_contents($fname . ".tmp",base64_encode(serialize($data0)));
      @rename($fname . ".tmp",$fname . ".dat");
      
      $data0 = array();
      if($level>0) {
	list($score,$data0) = DBScoreSite($_SESSION["usertable"]["contestnumber"], 
					  $_SESSION["usertable"]["usersitenumber"], 1, -1);
      }
      $ct=DBGetActiveContest();
      $localsite=$ct['contestlocalsite'];
      $fname = $remotedir . $ds . "score_site" . $localsite . "_" . $localsite . "_x"; // . md5($_SERVER['HTTP_HOST']);
      @file_put_contents($fname . ".tmp",base64_encode(serialize($data0)));
      @rename($fname . ".tmp",$fname . ".dat");
      echo "Transferring scores\n";
      scoretransfer($fname . ".dat", $localsite);
      echo "Saving scores\n";
      if(@create_zip($remotedir,glob($remotedir . '/*.dat'),$fname . ".tmp") != 1) {
	LOGError("Cannot create score zip file");
	if(@create_zip($remotedir,array(),$fname . ".tmp") == 1)
	  @rename($fname . ".tmp",$destination);
      } else {
	@rename($fname . ".tmp",$destination);
      }
      @fclose($fp);
    }
    if($dotransfer) {
      echo "Processing other data\n";
      getMainXML($_SESSION["usertable"]["contestnumber"],10,$dotransferall);
      echo "
\n"; } @unlink($destination . ".lck"); } else { if(file_exists($destination . ".lck") && filemtime($destination . ".lck") < time() - 120) @unlink($destination . ".lck"); echo "
Transfers locked by other process - try again soon
\n"; } } ?>