hwid) || !isset($gsData->major) || !isset($gsData->minor) || !isset($gsData->revision) || !isset($gsData->platform) ) { header('HTTP/1.0 400 Bad Request'); header('Content-Type: text/plain'); echo "POST data incomplete\n"; exit(1); } $gsVersion = $gsData->major . '.' . $gsData->minor . '.' . $gsData->revision; $requireUpdate = false; if (isset($GLOBALS['firmwareVersion'])) { $expectedVersion = $GLOBALS['firmwareVersion']; if ($gsVersion != $expectedVersion) { $requireUpdate = true; } } else { $expectedVersion = '0.9.2071'; if (version_compare($expectedVersion, $gsVersion, '>')) { $requireUpdate = true; } } if (!$requireUpdate) { header('HTTP/1.0 200 OK'); header('Content-type: application/json'); echo '{"available":false}' . "\n"; exit(0); } list($major, $minor, $revision) = explode('.', $expectedVersion); $firmwareDir = $rootDir . '/www/firmware/' . $expectedVersion; $firmwareFile = $firmwareDir . '/update.img'; if (!file_exists($firmwareFile)) { header('HTTP/1.0 200 OK'); header('Content-type: application/json'); header('X-Problem: Firmware file missing'); echo '{"available":false}' . "\n"; exit(0); } $data = [ 'available' => true, 'major' => $major, 'minor' => $minor, 'revision' => $revision, 'forced' => false, 'name' => $expectedVersion, 'description' => file_get_contents($firmwareDir . '/changelog.txt'), 'timestamp' => filemtime($firmwareFile), 'url' => 'http://update.gamestickservices.net/firmware/download?version=' . $expectedVersion, ]; $json = json_encode($data, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); header('HTTP/1.0 200 OK'); header('Content-Type: application/json'); echo $json . "\n";