55e3e147293b30f3e3ef4fe536154f16e07cb9ad
[debian/openrocket] / html / actions / updates.php
1 <?
2 $logfiles = "/home/groups/o/op/openrocket/persistent/logs/access-";
3
4
5 // getallheaders method
6 if (!function_exists('getallheaders')) {
7     function getallheaders() {
8        foreach ($_SERVER as $name => $value) {
9            if (substr($name, 0, 5) == 'HTTP_') {
10                $headers[str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))))] = $value;
11            }
12        }
13        return $headers;
14     }
15 }
16
17
18 // Parse + validate headers
19 $orid = "";
20 $orversion = "";
21 $oros = "";
22 $orjava = "";
23 $orcountry = "";
24 foreach (getallheaders() as $header => $value) {
25     if (preg_match("/^[a-zA-Z0-9 !$%&()*+,.\\/:=?@_~-]{1,40}$/", $value)) {
26         $h = strtolower($header);
27         if ($h == 'x-openrocket-version') {
28             $orversion = $value;
29         } else if ($h == 'x-openrocket-id') {
30             $orid = $value;
31         } else if ($h == 'x-openrocket-os') {
32             $oros = $value;
33         } else if ($h == 'x-openrocket-java') {
34             $orjava = $value;
35         } else if ($h == 'x-openrocket-country') {
36             $orcountry = $value;
37         }
38     }
39 }
40
41 // Log the request
42 if (strlen($orversion) > 0 || strlen($orid) > 0 || strlen($oros) > 0
43         || strlen($orjava) > 0 || strlen($orcountry) > 0) {
44
45     $file = $logfiles . gmdate("Y-m");
46     $line = gmdate("Y-m-d H:i:s") . ";" . $orid . ";" . $orversion .
47         ";" . $oros . ";" . $orjava . ";" . $orcountry . "\n";
48
49     $fp = fopen($file, 'a');
50     if ($fp != FALSE) {
51         fwrite($fp, $line);
52         fclose($fp);
53     }
54 }
55
56
57 // Set HTTP content-type header
58 header("Content-type: text/plain; charset=utf-8");
59
60 $version = $_GET["version"];
61
62 // No updates available
63 header("HTTP/1.0 204 No Content");
64
65 ?>