diff --git a/plugins/cpanel-change-password/CpanelChangePasswordDriver.php b/plugins/cpanel-change-password/CpanelChangePasswordDriver.php index a94e61504..08d4a6070 100644 --- a/plugins/cpanel-change-password/CpanelChangePasswordDriver.php +++ b/plugins/cpanel-change-password/CpanelChangePasswordDriver.php @@ -152,6 +152,11 @@ class CpanelChangePasswordDriver implements \RainLoop\Providers\ChangePassword\C $sResult = $oXmlApi->api2_query($sUser, 'Email', 'passwdpop', $aArgs); if ($sResult) { + if ($this->oLogger) + { + $this->oLogger->Write('CPANEL: '.$sResult, \MailSo\Log\Enumerations\Type::INFO); + } + $aResult = @\json_decode($sResult, true); $bResult = isset($aResult['cpanelresult']['data'][0]['result']) && !!$aResult['cpanelresult']['data'][0]['result']; diff --git a/plugins/cpanel-change-password/xmlapi.php b/plugins/cpanel-change-password/xmlapi.php index 73e1abb2e..88b85c826 100644 --- a/plugins/cpanel-change-password/xmlapi.php +++ b/plugins/cpanel-change-password/xmlapi.php @@ -656,7 +656,7 @@ class xmlapi // Set the $auth string - $authstr; + $authstr = ''; if ($this->auth_type == 'hash') { $authstr = 'Authorization: WHM ' . $this->user . ':' . $this->auth . "\r\n"; } elseif ($this->auth_type == 'pass') { @@ -671,13 +671,33 @@ class xmlapi // Perform the query (or pass the info to the functions that actually do perform the query) - $response; + $response = ''; if ($this->http_client == 'curl') { $response = $this->curl_query($url, $args, $authstr); } elseif ($this->http_client == 'fopen') { $response = $this->fopen_query($url, $args, $authstr); } + // fix #1 + $aMatch = array(); + if ($response && false !== stripos($response, '') && + preg_match('/HTTP-EQUIV[\s]?=[\s]?"refresh"/i', $response) && + preg_match('/]+url[\s]?=[\s]?([^">]+)/i', $response, $aMatch) && + !empty($aMatch[1]) && 0 === strpos(trim($aMatch[1]), 'http')) + { + $url = trim($aMatch[1]) . $query_type . $function; + if ($this->debug) { + error_log('new URL: ' . $url); + } + + if ($this->http_client == 'curl') { + $response = $this->curl_query($url, $args, $authstr); + } elseif ($this->http_client == 'fopen') { + $response = $this->fopen_query($url, $args, $authstr); + } + } + // --- + /* * Post-Query Block * Handle response, return proper data types, debug, etc @@ -1543,7 +1563,7 @@ class xmlapi */ public function editpkg($pkg) { - if (!$isset($pkg['name'])) { + if (!isset($pkg['name'])) { error_log("editpkg requires that name is defined in the array passed to it"); return false; @@ -2183,7 +2203,7 @@ class xmlapi * Service Status * * This function will return the status of all services on the and whether they are running or not - * @param string $service A single service to filter for. + * @param array $args A single service to filter for. * @return mixed * @link http://docs.cpanel.net/twiki/bin/view/AllDocumentation/AutomationIntegration/ServiceStatus XML API Call documentation */ @@ -2456,7 +2476,7 @@ class xmlapi } if (is_array($args)) { $display = ''; - foreach ($args as $key => $value) { + foreach ($args as $value) { $display .= $value . '|'; } $values['display'] = substr($display, 0, -1); diff --git a/rainloop/v/0.0.0/app/libraries/MailSo/Base/StreamWrappers/SubStreams.php b/rainloop/v/0.0.0/app/libraries/MailSo/Base/StreamWrappers/SubStreams.php index 7fe59ff59..cbb6f66d0 100644 --- a/rainloop/v/0.0.0/app/libraries/MailSo/Base/StreamWrappers/SubStreams.php +++ b/rainloop/v/0.0.0/app/libraries/MailSo/Base/StreamWrappers/SubStreams.php @@ -51,18 +51,18 @@ class SubStreams */ public static function CreateStream($aSubStreams) { - if (!in_array(self::STREAM_NAME, stream_get_wrappers())) + if (!\in_array(self::STREAM_NAME, \stream_get_wrappers())) { - stream_wrapper_register(self::STREAM_NAME, '\MailSo\Base\StreamWrappers\SubStreams'); + \stream_wrapper_register(self::STREAM_NAME, '\MailSo\Base\StreamWrappers\SubStreams'); } - $sHashName = md5(microtime(true).rand(1000, 9999)); + $sHashName = \md5(\microtime(true).\rand(1000, 9999)); self::$aStreams[$sHashName] = $aSubStreams; \MailSo\Base\Loader::IncStatistic('CreateStream/SubStreams'); - return fopen(self::STREAM_NAME.'://'.$sHashName, 'rb'); + return \fopen(self::STREAM_NAME.'://'.$sHashName, 'rb'); } /** @@ -71,10 +71,11 @@ class SubStreams protected function &getPart() { $nNull = null; - if (isset($this->aSubStreams[$this->iIndex])); + if (isset($this->aSubStreams[$this->iIndex])) { return $this->aSubStreams[$this->iIndex]; } + return $nNull; } @@ -88,16 +89,16 @@ class SubStreams $this->aSubStreams = array(); $bResult = false; - $aPath = parse_url($sPath); + $aPath = \parse_url($sPath); - if (isset($aPath['host']) && isset($aPath['scheme']) && - 0 < strlen($aPath['host']) && 0 < strlen($aPath['scheme']) && + if (isset($aPath['host'], $aPath['scheme']) && + 0 < \strlen($aPath['host']) && 0 < \strlen($aPath['scheme']) && self::STREAM_NAME === $aPath['scheme']) { $sHashName = $aPath['host']; if (isset(self::$aStreams[$sHashName]) && - is_array(self::$aStreams[$sHashName]) && - 0 < count(self::$aStreams[$sHashName])) + \is_array(self::$aStreams[$sHashName]) && + 0 < \count(self::$aStreams[$sHashName])) { $this->iIndex = 0; $this->iPos = 0; @@ -106,7 +107,7 @@ class SubStreams $this->aSubStreams = self::$aStreams[$sHashName]; } - $bResult = 0 < count($this->aSubStreams); + $bResult = 0 < \count($this->aSubStreams); } return $bResult; @@ -123,10 +124,10 @@ class SubStreams $mCurrentPart = null; if ($iCount > 0) { - if ($iCount < strlen($this->sBuffer)) + if ($iCount < \strlen($this->sBuffer)) { - $sReturn = substr($this->sBuffer, 0, $iCount); - $this->sBuffer = substr($this->sBuffer, $iCount); + $sReturn = \substr($this->sBuffer, 0, $iCount); + $this->sBuffer = \substr($this->sBuffer, $iCount); } else { @@ -142,11 +143,11 @@ class SubStreams break; } - if (is_resource($mCurrentPart)) + if (\is_resource($mCurrentPart)) { - if (!feof($mCurrentPart)) + if (!\feof($mCurrentPart)) { - $sReadResult = fread($mCurrentPart, 8192); + $sReadResult = @\fread($mCurrentPart, 8192); if (false === $sReadResult) { return false; @@ -154,11 +155,11 @@ class SubStreams $sReturn .= $sReadResult; - $iLen = strlen($sReturn); + $iLen = \strlen($sReturn); if ($iCount < $iLen) { - $this->sBuffer = substr($sReturn, $iCount); - $sReturn = substr($sReturn, 0, $iCount); + $this->sBuffer = \substr($sReturn, $iCount); + $sReturn = \substr($sReturn, 0, $iCount); $iCount = 0; } else @@ -171,17 +172,17 @@ class SubStreams $this->iIndex++; } } - else if (is_string($mCurrentPart)) + else if (\is_string($mCurrentPart)) { - $sReadResult = substr($mCurrentPart, 0, $iCount); + $sReadResult = \substr($mCurrentPart, 0, $iCount); $sReturn .= $sReadResult; - $iLen = strlen($sReadResult); + $iLen = \strlen($sReadResult); if ($iCount < $iLen) { - $this->sBuffer = substr($sReturn, $iCount); - $sReturn = substr($sReturn, 0, $iCount); + $this->sBuffer = \substr($sReturn, $iCount); + $sReturn = \substr($sReturn, 0, $iCount); $iCount = 0; } else @@ -194,7 +195,7 @@ class SubStreams } } - $this->iPos += strlen($sReturn); + $this->iPos += \strlen($sReturn); return $sReturn; }