blob: 2a1e42f21b5396edcf52a8e29cd07ca25939ff90 [file] [log] [blame]
<?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); $App = new App(); $Nav = new Nav(); $Menu = new Menu(); include("_projectCommon.php"); # All on the same line to unclutter the user's desktop'
/*******************************************************************************
* Copyright (c) 2010 Eclipse Foundation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Denis Roy (Eclipse Foundation) - initial API and implementation
*******************************************************************************/
header("Cache-control: no-cache");
require_once "/home/data/httpd/eclipse-php-classes/system/dbconnection.class.php";
require_once "/home/data/httpd/eclipse-php-classes/system/dbconnection_rw.class.php";
$_type = $App->getHTTPParameter("type");
$_debug = $App->getHTTPParameter("debug");
$_file = $App->getHTTPParameter("file");
if($_debug == 1) {
error_reporting(E_ALL);
ini_set("display_errors", true);
}
# make sure some incoming params are sane
if($_type != "md5" && $_type != "sha1") {
$_type = "sha1";
}
# strip potentially bad characters from file
$_file = str_replace("\%", "", $_file);
$_file = str_replace("../", "", $_file);
$_file = str_replace("'", "", $_file);
$filename_fileonly = substr($_file, strrpos($_file, "/") + 1); # filename portion only
# Connect to databases
# dbc is a read-only database (good for slave servers)
$dbc = new DBConnection();
$dbh = $dbc->connect();
$app = new App();
if($_file != "") {
# locate file on download.eclipse.org to ensure it's valid
$file_id = 0;
$filetime = 0;
$md5sum = 0;
$sha1sum = 0;
# q1: get file info from slave
$sql = "SELECT IDX.file_id, IDX.timestamp_disk, IF(IDX.md5sum = '0', '', IDX.md5sum) AS md5sum, IF(IDX.sha1sum = '0', '', IDX.sha1sum) AS sha1sum FROM download_file_index AS IDX WHERE IDX.file_name = '$_file'";
if($_debug == 1) {
echo $sql . "<br />";
}
# Get the file_id from the slave, but if the file_id is 0, then re-check the master just in case
$rs = mysql_query($sql, $dbh);
if($myrow = mysql_fetch_assoc($rs)) {
$file_id = $myrow['file_id'];
$filetime = $myrow['timestamp_disk'];
$md5sum = $myrow['md5sum'];
$sha1sum = $myrow['sha1sum'];
}
if(($md5sum == "" || $sha1sum == "") && $file_id > 0) {
# compute immediately
$md5sum = md5_file($App->getDownloadBasePath() . $_file);
$sha1sum = sha1_file($App->getDownloadBasePath() . $_file);
if(!$md5sum || !$sha1sum) {
$md5sum = md5_file("/home/data2/httpd/archive.eclipse.org" . $_file);
$sha1sum = sha1_file("/home/data2/httpd/archive.eclipse.org" . $_file);
}
if($md5sum && $sha1sum) {
$dbc_RW = new DBConnectionRW();
$dbh_RW = $dbc_RW->connect();
$sql = "UPDATE download_file_index SET md5sum = '$md5sum', sha1sum = '$sha1sum' WHERE file_id = " . $file_id;
mysql_query($sql, $dbh_RW);
if($_debug == 1) {
echo $sql . "<br />";
}
}
else {
echo "Unable to retrieve or compute sums for " . $_file;
}
}
header("Content-type: text/plain");
if($_type == "md5") {
echo $md5sum . " " . $filename_fileonly;
}
if($_type == "sha1") {
echo $sha1sum . " " . $filename_fileonly;
}
}
$dbc->disconnect(); # disconnects all pending DB connections
$rs = null;
$dbh_RW = null;
$dbc_RW = null;
$dbh = null;
$dbc = null;
?>