X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Fauth_ejabberd.php;h=8ee3af8e2be23148342d2eb84bcffb6707ba8da4;hb=bc5d1015b326d9332e15e32fc97a88b071c5f1a7;hp=e1900dc7304df8501794b5f9537fc050d59f3e85;hpb=494846023241606be0063cf4ad6d70fb38f35c19;p=friendica.git diff --git a/include/auth_ejabberd.php b/include/auth_ejabberd.php index e1900dc730..8ee3af8e2b 100755 --- a/include/auth_ejabberd.php +++ b/include/auth_ejabberd.php @@ -146,7 +146,7 @@ class exAuth { * @param array $aCommand The command array */ private function isuser($aCommand) { - global $a; + $a = get_app(); // Check if there is a username if (!isset($aCommand[1])) { @@ -159,14 +159,19 @@ class exAuth { $sUser = str_replace(array("%20", "(a)"), array(" ", "@"), $aCommand[1]); $this->writeDebugLog("[debug] checking isuser for ". $sUser."@".$aCommand[2]); - // If the hostnames doesn't match, we try to check remotely - if ($a->get_hostname() != $aCommand[2]) - $found = $this->check_user($aCommand[2], $aCommand[1], true); - else { + // Does the hostname match? So we try directly + if ($a->get_hostname() == $aCommand[2]) { $sQuery = "SELECT `uid` FROM `user` WHERE `nickname`='".dbesc($sUser)."'"; $this->writeDebugLog("[debug] using query ". $sQuery); $r = q($sQuery); $found = dbm::is_result($r); + } else { + $found = false; + } + + // If the hostnames doesn't match or there is some failure, we try to check remotely + if (!$found) { + $found = $this->check_user($aCommand[2], $aCommand[1], true); } if ($found) { @@ -214,7 +219,7 @@ class exAuth { * @param array $aCommand The command array */ private function auth($aCommand) { - global $a; + $a = get_app(); // check user authentication if (sizeof($aCommand) != 4) { @@ -227,10 +232,8 @@ class exAuth { $sUser = str_replace(array("%20", "(a)"), array(" ", "@"), $aCommand[1]); $this->writeDebugLog("[debug] doing auth for ".$sUser."@".$aCommand[2]); - // If the hostnames doesn't match, we try to authenticate remotely - if ($a->get_hostname() != $aCommand[2]) - $Error = !$this->check_credentials($aCommand[2], $aCommand[1], $aCommand[3], true); - else { + // Does the hostname match? So we try directly + if ($a->get_hostname() == $aCommand[2]) { $sQuery = "SELECT `uid`, `password` FROM `user` WHERE `nickname`='".dbesc($sUser)."'"; $this->writeDebugLog("[debug] using query ". $sQuery); if ($oResult = q($sQuery)) { @@ -246,6 +249,13 @@ class exAuth { $this->writeLog("[exAuth] got password ".$oConfig[0]["v"]); $Error = ($aCommand[3] != $oConfig[0]["v"]); } + } else { + $Error = true; + } + + // If the hostnames doesn't match or there is some failure, we try to check remotely + if ($Error) { + $Error = !$this->check_credentials($aCommand[2], $aCommand[1], $aCommand[3], true); } if ($Error) {