232 lines
6.8 KiB
PHP
Raw Normal View History

2010-03-12 23:06:04 +00:00
<?
$logfiles = "/home/groups/o/op/openrocket/persistent/logs/access-";
// getallheaders method
if (!function_exists('getallheaders')) {
function getallheaders() {
foreach ($_SERVER as $name => $value) {
if (substr($name, 0, 5) == 'HTTP_') {
$headers[str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))))] = $value;
}
}
return $headers;
}
}
// Parse + validate headers
$orid = "";
$orversion = "";
$oros = "";
$orjava = "";
$orcountry = "";
$orcores = "";
$orlocale = "";
2010-03-12 23:06:04 +00:00
foreach (getallheaders() as $header => $value) {
if (preg_match("/^[a-zA-Z0-9 !$%&()*+,.\\/:=?@_~-]{1,40}$/", $value)) {
$h = strtolower($header);
if ($h == 'x-openrocket-version') {
$orversion = $value;
} else if ($h == 'x-openrocket-id') {
$orid = $value;
} else if ($h == 'x-openrocket-os') {
$oros = $value;
} else if ($h == 'x-openrocket-java') {
$orjava = $value;
} else if ($h == 'x-openrocket-country') {
$orcountry = $value;
} else if ($h == 'x-openrocket-cpus') {
$orcores = $value;
} else if ($h == 'x-openrocket-locale') {
$orlocale = $value;
2010-03-12 23:06:04 +00:00
}
}
}
// Log the request
if ((strlen($orversion) > 0 || strlen($orid) > 0 || strlen($oros) > 0
|| strlen($orjava) > 0 || strlen($orcountry) > 0
|| strlen($orcores) > 0 || strlen($orlocale) > 0) &&
2010-03-12 23:06:04 +00:00
(strlen($orversion) < 20 && strlen($orid) < 50 && strlen($oros) < 50
&& strlen($orjava) < 50 && strlen($orcountry) < 50)
&& strlen($orcores) < 10 && strlen($orlocale) < 20) {
2010-03-12 23:06:04 +00:00
$file = $logfiles . gmdate("Y-m");
$line = gmdate("Y-m-d H:i:s") . ";" . $orid . ";" . $orversion .
";" . $oros . ";" . $orjava . ";" . $orcountry . ";" . $orcores .
";" . $orlocale . "\n";
2010-03-12 23:06:04 +00:00
$fp = fopen($file, 'a');
if ($fp != FALSE) {
fwrite($fp, $line);
fclose($fp);
}
}
// Set HTTP content-type header
// No charset allowed for 0.9.4
//header("Content-type: text/plain; charset=utf-8");
header("Content-type: text/plain");
/*
* Currently all old versions are handled manually.
* Update checking was introduced in OpenRocket 0.9.4
*
* We ignore "pre" versions, they are handled exacly like
* their non-pre counterparts.
2010-03-12 23:06:04 +00:00
*/
$version = $_GET["version"];
$updates = "";
2012-09-28 21:42:20 +00:00
$unstable = "12.09.1";
2010-09-07 13:47:37 +00:00
$stable = "1.0.0";
2012-09-28 21:42:20 +00:00
if (preg_match("/^12.09$/", $version)) {
$updates = "Version: " . $unstable . "\n" .
"4: Bug fixes\n" .
"";
} else if (preg_match("/^12.03$/", $version)) {
2011-08-25 20:01:39 +00:00
$updates = "Version: " . $unstable . "\n" .
2012-09-16 14:29:59 +00:00
"10: 3D design view\n" .
"9: Component presets\n" .
"5: Fractional inch unit\n" .
"4: Printing centering rings\n" .
"4: Translations to Czech and Polish\n" .
"";
} else if (preg_match("/^1\.1\.9$/", $version)) {
$updates = "Version: " . $unstable . "\n" .
"10: 3D design view\n" .
"9: Component presets\n" .
2012-03-17 21:13:09 +00:00
"8: Writing RKT files\n" .
"5: Configurable stage separation\n" .
"4: Freeform fin import from images\n" .
"4: Translations to Italian and Russian\n" .
"";
} else if (preg_match("/^1\.1\.8$/", $version)) {
$updates = "Version: " . $unstable . "\n" .
2012-09-16 14:29:59 +00:00
"10: 3D design view\n" .
"9: Component presets\n" .
2012-03-17 21:13:09 +00:00
"8: Writing RKT files\n" .
2011-11-24 19:19:39 +00:00
"6: Additional template printing\n" .
"5: Geodetic computations\n" .
2012-03-17 21:13:09 +00:00
"5: Configurable stage separation\n" .
"5: Guided tours\n" .
"4: Freeform fin import from images\n" .
"4: Translations to Italian and Russian\n" .
2011-11-24 19:19:39 +00:00
"4: Bug fixes\n" .
"";
2011-11-24 19:34:12 +00:00
} else if (preg_match("/^1\.1\.7$/", $version)) {
2011-11-24 19:19:39 +00:00
$updates = "Version: " . $unstable . "\n" .
2012-03-17 21:13:09 +00:00
"8: Writing RKT files\n" .
2011-11-24 19:19:39 +00:00
"6: Additional template printing\n" .
"5: Geodetic computations\n" .
2012-03-17 21:13:09 +00:00
"5: Configurable stage separation\n" .
"5: Guided tours\n" .
"4: Freeform fin import from images\n" .
"4: Translations to Italian and Russian\n" .
2011-08-25 20:01:39 +00:00
"4: Bug fixes\n" .
"";
2011-11-24 19:34:12 +00:00
} else if (preg_match("/^1\.1\.6$/", $version)) {
2011-06-10 16:56:16 +00:00
$updates = "Version: " . $unstable . "\n" .
2012-09-16 14:29:59 +00:00
"10: 3D design view\n" .
"9: Component presets\n" .
2012-03-17 21:13:09 +00:00
"8: Writing RKT files\n" .
2011-08-12 20:54:11 +00:00
"8: Automatic rocket design optimization\n" .
2011-11-24 19:19:39 +00:00
"6: Additional template printing\n" .
"5: Geodetic computations\n" .
2011-08-12 20:54:11 +00:00
"";
2011-11-24 19:34:12 +00:00
} else if (preg_match("/^1\.1\.5$/", $version)) {
2011-08-12 20:54:11 +00:00
$updates = "Version: " . $unstable . "\n" .
2012-09-16 14:29:59 +00:00
"10: 3D design view\n" .
"9: Component presets\n" .
2012-03-17 21:13:09 +00:00
"8: Writing RKT files\n" .
2011-08-12 20:54:11 +00:00
"8: Automatic rocket design optimization\n" .
2011-07-22 13:29:01 +00:00
"6: Initial localization support\n" .
2011-11-24 19:19:39 +00:00
"6: Additional template printing\n" .
"5: Geodetic computations\n" .
2011-07-22 13:29:01 +00:00
"5: Scaling support\n" .
"4: Bug fixes\n" .
"";
2011-11-24 19:34:12 +00:00
} else if (preg_match("/^1\.1\.4$/", $version)) {
2011-07-22 13:29:01 +00:00
$updates = "Version: " . $unstable . "\n" .
2012-09-16 14:29:59 +00:00
"10: 3D design view\n" .
"9: Component presets\n" .
2012-03-17 21:13:09 +00:00
"8: Writing RKT files\n" .
2011-08-12 20:54:11 +00:00
"8: Automatic rocket design optimization\n" .
2011-07-22 13:29:01 +00:00
"6: Initial localization support\n" .
"5: Fixes to printing system\n" .
"5: Scaling support\n" .
"";
2011-11-24 19:34:12 +00:00
} else if (preg_match("/^1\.1\.3$/", $version)) {
2010-09-07 13:47:37 +00:00
$updates = "Version: " . $unstable . "\n" .
2012-09-16 14:29:59 +00:00
"10: 3D design view\n" .
"9: Component presets\n" .
2012-03-17 21:13:09 +00:00
"8: Writing RKT files\n" .
2011-08-12 20:54:11 +00:00
"8: Automatic rocket design optimization\n" .
2011-07-22 13:29:01 +00:00
"7: Initial printing support\n" .
"6: Initial localization support\n" .
"5: Scaling support\n" .
"4: Bug fixes\n" .
"";
2011-11-24 19:34:12 +00:00
} else if (preg_match("/^1\.1\.[12]$/", $version)) {
2011-03-05 11:39:58 +00:00
$updates = "Version: " . $unstable . "\n" .
2012-09-16 14:29:59 +00:00
"10: 3D design view\n" .
"9: Component presets\n" .
2012-03-17 21:13:09 +00:00
"8: Writing RKT files\n" .
2011-08-12 20:54:11 +00:00
"8: Automatic rocket design optimization\n" .
2011-03-05 11:39:58 +00:00
"6: Initial printing support\n" .
2010-10-06 05:18:11 +00:00
"5: Initial drag-and-drop support\n" .
2011-07-22 13:29:01 +00:00
"5: Initial localization support\n" .
"5: Scaling support\n" .
"4: Bug fixes\n" .
"";
2011-11-24 19:34:12 +00:00
} else if (preg_match("/^1\.1\.0$/", $version)) {
2010-09-07 13:47:37 +00:00
$updates = "Version: " . $unstable . "\n" .
2012-09-16 14:29:59 +00:00
"10: 3D design view\n" .
"9: Component presets\n" .
2012-03-17 21:13:09 +00:00
"8: Writing RKT files\n" .
2011-08-12 20:54:11 +00:00
"8: Automatic rocket design optimization\n" .
2011-03-05 11:39:58 +00:00
"6: Initial printing support\n" .
2011-07-22 13:29:01 +00:00
"6: Initial localization support\n" .
"6: Enhanced motor selection\n" .
2010-09-03 16:44:37 +00:00
"5: Rewritten simulation code\n" .
2010-10-06 05:18:11 +00:00
"5: Drag-and-drop support\n" .
2011-07-22 13:29:01 +00:00
"4: Bug fixes\n" .
"";
} else if (preg_match("/^0\.9\.6/", $version)) {
2010-09-07 13:47:37 +00:00
$updates = "Version: " . $stable . "\n" .
2012-09-16 14:29:59 +00:00
"10: 3D design view\n" .
"9: Component presets\n" .
2012-03-17 21:13:09 +00:00
"8: Writing RKT files\n" .
2010-03-12 23:06:04 +00:00
"6: Hundreds of new thrustcurves\n" .
2011-07-22 13:29:01 +00:00
"5: Bug fixes\n" .
"";
} else if (preg_match("/^0\.9\.[45]/", $version)) {
2010-09-07 13:47:37 +00:00
$updates = "Version: " . $stable . "\n" .
2012-09-16 14:29:59 +00:00
"10: 3D design view\n" .
"9: Component presets\n" .
2012-03-17 21:13:09 +00:00
"8: Writing RKT files\n" .
2010-03-12 23:06:04 +00:00
"7: Hundreds of new thrustcurves\n" .
"6: Aerodynamic computation updates\n" .
2011-07-22 13:29:01 +00:00
"5: Numerous bug fixes" .
"";
2010-03-12 23:06:04 +00:00
}
if (strlen($updates) == 0) {
// No updates available
header("HTTP/1.0 204 No Content");
} else {
header("HTTP/1.0 200 OK");
echo $updates;
}
2012-09-28 21:42:20 +00:00
?>