コード例 #1
0
 public static function configureProxy($proxyHost, $proxyUser, $proxyPass)
 {
     $proxy = array('http' => array('proxy' => 'tcp://' . $proxyHost, 'request_fulluri' => true));
     if (!empty($proxyUser) && !empty($proxyPass)) {
         $auth = base64_encode($proxyUser . ":" . $proxyPass);
         $proxy['http']['header'] = "Proxy-Authorization: Basic {$auth}";
     }
     self::$context = stream_context_create($proxy);
 }
コード例 #2
0
 public static function configureProxy($proxyHost, $proxyUser, $proxyPass, $siteUser = "", $sitePass = "")
 {
     $contextData = array('http' => array());
     if (!empty($proxyHost)) {
         $contextData['http']['proxy'] = 'tcp://' . $proxyHost;
         // $proxy = array( 'http' => array( 'proxy' => 'tcp://'.$proxyHost, 'request_fulluri' => true ) );
         $contextData['http']['request_fulluri'] = true;
         $contextData['ssl']['SNI_enabled'] = false;
         if (!empty($proxyUser) && !empty($proxyPass)) {
             $auth = base64_encode($proxyUser . ":" . $proxyPass);
             $contextData['http']['header'] = "Proxy-Authorization: Basic {$auth}";
         }
     }
     if (!empty($siteUser) && !empty($sitePass)) {
         $headerString = "Authorization: Basic " . base64_encode("{$siteUser}:{$sitePass}");
         if (isset($contextData['http']['header'])) {
             $contextData['http']['header'] .= "; " . $headerString;
         } else {
             $contextData['http']['header'] = $headerString;
         }
     }
     self::$context = stream_context_create($contextData);
 }
コード例 #3
0
 public function switchAction($action, $httpVars, $fileVars)
 {
     if (!isset($this->actions[$action])) {
         return;
     }
     $loggedUser = AuthService::getLoggedUser();
     if (AuthService::usersEnabled() && !$loggedUser->isAdmin()) {
         return;
     }
     require_once AJXP_INSTALL_PATH . "/" . AJXP_PLUGINS_FOLDER . "/action.updater/class.AjaXplorerUpgrader.php";
     if (!empty($this->pluginConf["PROXY_HOST"])) {
         AjaXplorerUpgrader::configureProxy($this->pluginConf["PROXY_HOST"], $this->pluginConf["PROXY_USER"], $this->pluginConf["PROXY_PASS"]);
     }
     switch ($action) {
         case "migrate_metaserial":
             $dryRun = !isset($httpVars["real_run"]);
             AjaXplorerUpgrader::migrateMetaSerialPlugin($httpVars["repository_id"], $dryRun);
             break;
         case "get_upgrade_path":
             header("Content-type: application/json");
             print AjaXplorerUpgrader::getUpgradePath($this->pluginConf["UPDATE_SITE"], "json", $this->pluginConf["UPDATE_CHANNEL"]);
             break;
         case "test_upgrade_scripts":
             if (!AJXP_SERVER_DEBUG || AuthService::getLoggedUser() == null || !AuthService::getLoggedUser()->isAdmin()) {
                 break;
             }
             $upgrader = new AjaXplorerUpgrader("", "", "");
             $upgrader->testUpgradeScripts();
             break;
         case "perform_upgrade":
             AJXP_Utils::safeIniSet("output_buffering", "Off");
             if (AJXP_PACKAGING != "zip") {
                 print "Your installation is managed directly via os packages, you should not upgrade manually.";
                 break;
             }
             $res = AjaXplorerUpgrader::getUpgradePath($this->pluginConf["UPDATE_SITE"], "php", $this->pluginConf["UPDATE_CHANNEL"]);
             if (!count($res["packages"])) {
                 print "No update is necessary!";
                 break;
             }
             include dirname(__FILE__) . "/output_head.html";
             foreach ($res["packages"] as $index => $zipPackage) {
                 print "<div class='main_step'>Applying upgrade " . basename($zipPackage) . "</div>";
                 $u = new AjaXplorerUpgrader($zipPackage, $res["hashes"][$index], $res["hash_method"], explode(",", $this->pluginConf["PRESERVE_FILES"]));
                 $errors = false;
                 while ($u->hasNextStep()) {
                     set_time_limit(180);
                     print "<div class='upgrade_step'><div class='upgrade_title'>" . $u->currentStepTitle . "</div>";
                     $u->execute();
                     if ($u->error != null) {
                         print "<div class='upgrade_result error'>- Error : " . $u->error . "</div>";
                         $errors = true;
                         break;
                     } else {
                         print "<div class='upgrade_result success'>- " . $u->result . "</div>";
                     }
                     print "</div>";
                     // FLUSH OUTPUT, SCROLL DOWN
                     print str_repeat(' ', 300);
                     print '<script type="text/javascript">doScroll();</script>';
                     flush();
                     sleep(0.5);
                 }
                 if ($errors) {
                     break;
                 }
             }
             print '<script type="text/javascript">replaceTop();</script>';
             print str_repeat(' ', 300);
             flush();
             break;
     }
 }