/** * logs in host * * @param string $login * @param string $password * @param bool $isMasterAccount * @param $remoteAddress * @return Model\Session */ public function loginHost($login, $password, $isMasterAccount, $remoteAddress) { $session = $this->recoverSession($login, $isMasterAccount, $remoteAddress); if ($session) { $this->keepAlive($session->getSid()); return $session; } $session = new Model\Session(); $ses_id = ''; $sid = ''; $uid = 0; $returnValue = 0; $flags = $isMasterAccount ? 1 : 0; $this->oracle->plsql("P_HOST_SENDERTOOL_LOGIN_V8")->inString($login)->inString($password)->inString($remoteAddress)->inString('')->outInt($ses_id)->outString($sid, 40)->inInt($flags)->outInt($uid)->outInt($returnValue)->call(); $session->setLogin($login); $session->setFlags($flags); if ($returnValue >= 0) { $session->setUid($uid); $session->setSid($sid); } else { $session->setErrorNumber($returnValue); } return $session; }