X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Fauth_ejabberd.php;h=14f5dcfe0c797271ab5d09720223c2a8675d82a8;hb=83bbbd1fe3d75a62f27462250ebe7632ecea0a75;hp=e12da35ef1755057b37e78e26e2069ba50fa7035;hpb=52f12ee28db97b29ce0f10c8ecf76144b80d4216;p=friendica.git diff --git a/include/auth_ejabberd.php b/include/auth_ejabberd.php index e12da35ef1..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; } @@ -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) { @@ -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); } } -?>