X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Fauth_ejabberd.php;h=14f5dcfe0c797271ab5d09720223c2a8675d82a8;hb=0882b2df9704f9e2b32b9874dceb53a90ca72edd;hp=e1900dc7304df8501794b5f9537fc050d59f3e85;hpb=c0aac548274d463c611a9c0317fa6ec7d205a30e;p=friendica.git diff --git a/include/auth_ejabberd.php b/include/auth_ejabberd.php index e1900dc730..14f5dcfe0c 100755 --- a/include/auth_ejabberd.php +++ b/include/auth_ejabberd.php @@ -32,6 +32,8 @@ * */ +use Friendica\App; + if (sizeof($_SERVER["argv"]) == 0) die(); @@ -45,17 +47,16 @@ $directory = realpath($directory."/.."); chdir($directory); require_once("boot.php"); -global $a, $db; +global $a; -if (is_null($a)) - $a = new App; +if (empty($a)) { + $a = new App(dirname(__DIR__)); +} -if (is_null($db)) { - @include(".htconfig.php"); - require_once("include/dba.php"); - $db = new dba($db_host, $db_user, $db_pass, $db_data); - unset($db_host, $db_user, $db_pass, $db_data); -}; +@include(".htconfig.php"); +require_once("include/dba.php"); +dba::connect($db_host, $db_user, $db_pass, $db_data); +unset($db_host, $db_user, $db_pass, $db_data); // the logfile to which to write, should be writeable by the user which is running the server $sLogFile = get_config('jabber','logfile'); @@ -78,22 +79,20 @@ class exAuth { * @param boolean $bDebug Debug mode */ public function __construct($sLogFile, $bDebug) { - global $db; - // setter $this->sLogFile = $sLogFile; $this->bDebug = $bDebug; // Open the logfile if the logfile name is defined if ($this->sLogFile != '') - $this->rLogFile = fopen($this->sLogFile, "a") or die("Error opening log file: ". $this->sLogFile); + $this->rLogFile = fopen($this->sLogFile, "a") || die("Error opening log file: ". $this->sLogFile); $this->writeLog("[exAuth] start"); // We are connected to the SQL server and are having a log file. do { // Quit if the database connection went down - if (!$db->connected()) { + if (!dba::connected()) { $this->writeDebugLog("[debug] the database connection went down"); return; } @@ -146,7 +145,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 +158,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 +218,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 +231,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 +248,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) { @@ -322,4 +331,3 @@ class exAuth { fclose($this->rLogFile); } } -?>