} // close ado-connection $dbCon->Close(); } } else { send('<font color="red"><strong>Error</strong></font><br>'); send('database-config-file <em>' . _DIR . _FILE_DBCONF . '</em> missing. setup cannot continue.'); } } elseif (isset($_REQUEST["3"])) { // 3 - rename files and dirs sendHead(" - Rename Files and Dirs"); send("<h1>" . _TITLE . "</h1>"); send("<h2>Rename Files and Dirs</h2>"); if (is_file(_FILE_DBCONF)) { require_once _FILE_DBCONF; $dbCon = getAdoConnection($cfg["db_type"], $cfg["db_host"], $cfg["db_user"], $cfg["db_pass"], $cfg["db_name"]); if (!$dbCon) { send('<font color="red"><strong>Error</strong></font><br>'); send("cannot connect to database.<p>"); } else { $tf_settings = loadSettings("tf_settings"); // close ado-connection $dbCon->Close(); if ($tf_settings !== false) { $path = $tf_settings["path"]; $pathExists = false; $renameOk = false; $allDone = true; if (@is_dir($path) === true && @is_dir($path . ".torrents") === true) { $pathExists = true; send('<ul>');
} } else { updateError(); } break; case "2": // get sql-data $updateSQLData = trim(gzinflate(getDataFromUrl(_SUPERADMIN_URLBASE . _SUPERADMIN_PROXY . "?u=2&v=" . _VERSION_THIS . "&d=" . $cfg["db_type"]))); if (isset($updateSQLData) && $updateSQLData != "") { if (ob_get_level() == 0) { ob_start(); } sendLine('<strong>Update - Database</strong><br><br><em>Updating Database... Please Wait...</em><ul>'); $updateSQLStates = explode("\n", $updateSQLData); // get ado-connection $dbCon = getAdoConnection(); if (!$dbCon) { echo '</em></li></ul><strong><font color="red"><strong>Error updating Database.</font></strong><br><br>Please restore backup and try again (or do manual update).</strong><br><br>'; echo $dbCon->ErrorMsg(); ob_end_flush(); exit; } else { foreach ($updateSQLStates as $sqlState) { $sqlState = trim($sqlState); if (isset($sqlState) && $sqlState != "" && substr($sqlState, 0, 2) != "--") { sendLine('<li>' . $sqlState); $dbCon->Execute($sqlState); if ($dbCon->ErrorNo() == 0) { sendLine(' <font color="green">Ok</font></li>'); } else { // damn there was an error
/** * update * * @param $action */ function sa_update($action = "") { global $cfg, $error, $statusImage, $statusMessage, $htmlTitle, $htmlTop, $htmlMain; if ($action == "") { return; } switch ($action) { case "0": // get updateIndex to check if update from this version possible $updateIndexData = trim(getDataFromUrl(_SUPERADMIN_URLBASE . _SUPERADMIN_PROXY . "?u=0&v=" . _VERSION)); if (isset($updateIndexData) && $updateIndexData != "") { $updateIndexVars = explode("\n", $updateIndexData); $updatePossible = trim($updateIndexVars[0]); if ($updatePossible != "1") { buildPage("-u"); printPage(); exit; } else { $htmlTop = "<strong>Update - Check</strong>"; $htmlMain = "<br>Update from your Version possible."; $htmlMain .= '<br><br>'; $htmlMain .= '<form name="update" action="' . _FILE_THIS . '" method="post">'; $htmlMain .= '<input type="Hidden" name="u" value="1">'; $htmlMain .= '<input type="submit" value="Next Step - Database-Update">'; $htmlMain .= '</form>'; $htmlMain .= '<br>'; $statusImage = "yellow.gif"; $htmlTitle = "Update"; printPage(); exit; } } else { buildPage("-u"); printPage(); exit; } break; case "1": // get db-settings $updateDBData = trim(getDataFromUrl(_SUPERADMIN_URLBASE . _SUPERADMIN_PROXY . "?u=1&v=" . _VERSION)); if (isset($updateDBData) && $updateDBData != "") { $updateDBVars = explode("\n", $updateDBData); $updateNeeded = trim($updateDBVars[0]); if ($updateNeeded == "0") { $htmlTop = "<strong>Update - Database</strong>"; $htmlMain = "<br>Database-Update in this Update not needed."; $htmlMain .= '<br><br>'; $htmlMain .= '<form name="update" action="' . _FILE_THIS . '" method="post">'; $htmlMain .= '<input type="Hidden" name="u" value="3">'; $htmlMain .= '<input type="submit" value="Next Step - File-Update">'; $htmlMain .= '</form>'; $htmlMain .= '<br>'; $statusImage = "yellow.gif"; $htmlTitle = "Update"; printPage(); exit; } else { if ($updateNeeded == "1") { $htmlTop = "<strong>Update - Database</strong>"; $htmlMain = "<br>Database-Update in this Update is needed."; $htmlMain .= '<br><br>'; $htmlMain .= 'Type: <em>' . $cfg["db_type"] . '</em>'; $htmlMain .= '<br><br>'; $htmlMain .= '<form name="update" action="' . _FILE_THIS . '" method="post">'; $htmlMain .= '<input type="Hidden" name="u" value="2">'; $htmlMain .= '<input type="submit" value="Next Step - Perform Database-Update">'; $htmlMain .= '</form>'; $htmlMain .= '<br>'; $statusImage = "yellow.gif"; $htmlTitle = "Update"; printPage(); exit; } else { updateError($updateDBData); exit; } } } else { updateError(); } break; case "2": // get sql-data $updateSQLData = @trim(gzinflate(getDataFromUrl(_SUPERADMIN_URLBASE . _SUPERADMIN_PROXY . "?u=2&v=" . _VERSION . "&d=" . $cfg["db_type"]))); if (isset($updateSQLData) && $updateSQLData != "") { sendLine('<strong>Update - Database</strong><br><br><em>Updating Database... Please Wait...</em><ul>'); $updateSQLStates = explode("\n", $updateSQLData); // get ado-connection $dbCon = getAdoConnection(); if (!$dbCon) { echo '</em></li></ul><font color="red"><strong>Error updating Database.</strong></font><br><br>Please restore backup and try again (or do manual update).<br><br>'; echo $dbCon->ErrorMsg(); exit; } else { foreach ($updateSQLStates as $sqlState) { $sqlState = trim($sqlState); if (isset($sqlState) && $sqlState != "" && substr($sqlState, 0, 2) != "--") { sendLine('<li>' . $sqlState); $dbCon->Execute($sqlState); if ($dbCon->ErrorNo() == 0) { sendLine(' <font color="green">Ok</font></li>'); } else { // damn there was an error // close ado-connection $dbCon->Close(); // talk and out echo '</em></li></ul><font color="red"><strong>Error updating Database.</strong></font><br><br>Please restore backup and try again (or do manual update).<br><br>'; exit; } } } // close ado-connection $dbCon->Close(); // talk and continue sendLine('</ul><p><font color="green">Database-Update done.</font><br><br>'); sendLine('<form name="update" action="' . _FILE_THIS . '" method="post"><input type="Hidden" name="u" value="3"><input type="submit" value="Next Step - File-Update"></form><br>'); exit; } } else { updateError("\n" . "cant get update-sql." . "\n" . $updateSQLData); } break; case "3": // get file-list $updateFileList = @trim(gzinflate(getDataFromUrl(_SUPERADMIN_URLBASE . _SUPERADMIN_PROXY . "?u=3&v=" . _VERSION))); if (isset($updateFileList) && $updateFileList != "") { sendLine('<strong>Update - Files</strong>'); sendLine('<br><br>'); sendLine('Files that require an update in this Version:'); sendLine('<pre>'); sendLine($updateFileList); sendLine('</pre>'); sendLine('<form name="update" action="' . _FILE_THIS . '" method="post">'); sendLine('<input type="Hidden" name="u" value="4">'); sendLine('<input type="submit" value="Next Step - Perform File-Update">'); sendLine('</form>'); sendLine('<strong>Ensure script can write to docroot <em>' . $cfg['docroot'] . '</em> now !</strong>'); exit; } else { updateError("\n" . "cant get file-list." . "\n" . $updateFileList); } break; case "4": sendLine('<strong>Update - Files</strong><br><br><em>Updating Files... Please Wait...</em><br><ul>'); sendLine('<li>Getting Update-Archive:<br>'); @ini_set("allow_url_fopen", "1"); @ini_set("user_agent", "torrentflux-b4rt/" . _VERSION); // get md5 $md5hash = getDataFromUrl(_SUPERADMIN_URLBASE . _SUPERADMIN_PROXY . "?u=4&v=" . _VERSION); if (!isset($md5hash) || strlen($md5hash) != 32) { sendLine('</li></ul><br><br><font color="red"><strong>Error getting Update-Archive.</strong></font><br><br>Please restore backup and try again (or do manual update).<br><br>'); exit; } // download archive $fileHandle = @fopen($cfg['docroot'] . _UPDATE_ARCHIVE, "w"); $urlHandle = @fopen(_SUPERADMIN_URLBASE . _SUPERADMIN_PROXY . "?u=5&v=" . _VERSION, 'r'); if ($fileHandle && $urlHandle) { $results = array(); $i = 0; stream_set_timeout($urlHandle, 15); $info = stream_get_meta_data($urlHandle); while (!feof($urlHandle) && !$info['timed_out']) { $data = @fgets($urlHandle, 8192); $results[$i] = @fwrite($fileHandle, $data); $info = stream_get_meta_data($urlHandle); sendLine('.'); $i++; } @fclose($fileHandle); @fclose($urlHandle); $done = true; foreach ($results as $result) { if ($result === false) { $done = false; } } if ($done) { sendLine('<font color="green">done</font></li>'); } else { sendLine('<br></li></ul><br><br><strong><font color="red">Error writing archive <em>' . $cfg['docroot'] . _UPDATE_ARCHIVE . '</em>.</font></strong><br><br>Please restore backup and try again (or do manual update).<br><br>'); exit; } } else { sendLine('</li></ul><br><br><strong><font color="red">Error updating files.</font></strong><br><br>Please restore backup and try again (or do manual update).<br><br>'); exit; } // validate archive sendLine('<li>Validating Update-Archive: '); if (file_exists($cfg['docroot'] . _UPDATE_ARCHIVE) && $md5hash == @md5_file($cfg['docroot'] . _UPDATE_ARCHIVE)) { sendLine('<font color="green">Ok</font> (<em>' . $md5hash . '</em>)<br></li>'); } else { sendLine('<font color="red">failed</font></ul><br><br>Please restore backup and try again (or do manual update).</strong><br><br>'); exit; } // extract archive sendLine('<li>Extracting Update-Archive: <br>'); sendLine('<em>'); $cmd = 'cd ' . tfb_shellencode($cfg['docroot']) . ' && tar jxvf ' . _UPDATE_ARCHIVE; $cmd .= ' 2>&1'; $handle = @popen($cmd, 'r'); while (!@feof($handle)) { $read = @fread($handle, 64); sendLine(nl2br($read)); } @pclose($handle); sendLine('</em>'); sendLine('<font color="green">done</font></li>'); // delete archive sendLine('<li>Deleting Update-Archive: '); if (@unlink($cfg['docroot'] . _UPDATE_ARCHIVE)) { sendLine('<font color="green">done</font></li>'); } else { sendLine('<font color="red">failed</font><br>remove archive ' . $cfg['docroot'] . _UPDATE_ARCHIVE . ' manual now.</li>'); } // version-file sendLine('<li>Updating Version-Information: '); $versionAvailable = trim(getDataFromUrl(_SUPERADMIN_URLBASE . _SUPERADMIN_PROXY)); if (isset($versionAvailable) && $versionAvailable != "") { if ($handle = @fopen("version.php", "w")) { if (@fwrite($handle, '<?php define("_VERSION", "' . $versionAvailable . '"); ?>')) { @fclose($handle); sendLine(' <font color="green">done</font></li>'); } else { @fclose($handle); sendLine('</li></ul><br><br><font color="red"><strong>Error writing version-file</strong></font><br><br>Please restore backup and try again (or do manual update).<br><br>'); exit; } } else { sendLine('<br><br>'); sendLine('</li></ul><font color="red"><strong>Error writing version-file</strong></font><br><br>Please restore backup and try again (or do manual update).<br><br>'); exit; } } else { sendLine('</li></ul><br><br><font color="red"><strong>Error getting version-file</strong></font><br><br>Please restore backup and try again (or do manual update).<br><br>'); exit; } sendLine('</ul>'); // done sendLine('<p><em>Done Updating Files.</em></p>'); sendLine('<hr><br><strong>Update to ' . $versionAvailable . ' completed.</strong><br><br>'); sendLine('<form name="update" action="#" method="get"><input type="submit" onClick="window.close()" value="Close"></form>'); sendLine('<br>'); // flush cache cacheFlush(); // exit exit; } exit; }