From 600bb156f79908e0ca72a039c6ad290146a2eb4e Mon Sep 17 00:00:00 2001 From: alecpl <alec@alec.pl> Date: Tue, 04 Jan 2011 06:16:54 -0500 Subject: [PATCH] - Use improved get_capability() syntax, saves CAPABILITY call in some cases --- program/include/rcube_imap_generic.php | 20 +++++++++----------- 1 files changed, 9 insertions(+), 11 deletions(-) diff --git a/program/include/rcube_imap_generic.php b/program/include/rcube_imap_generic.php index b5fd968..b11266f 100644 --- a/program/include/rcube_imap_generic.php +++ b/program/include/rcube_imap_generic.php @@ -764,18 +764,14 @@ // check for supported auth methods if ($auth_method == 'CHECK') { - if ($this->getCapability('AUTH=DIGEST-MD5')) { - $auth_methods[] = 'DIGEST-MD5'; - } - if ($this->getCapability('AUTH=CRAM-MD5') || $this->getCapability('AUTH=CRAM_MD5')) { - $auth_methods[] = 'CRAM-MD5'; - } - if ($this->getCapability('AUTH=PLAIN')) { - $auth_methods[] = 'PLAIN'; + if ($auth_caps = $this->getCapability('AUTH')) { + $auth_methods = $auth_caps; } // RFC 2595 (LOGINDISABLED) LOGIN disabled when connection is not secure - if (!$this->getCapability('LOGINDISABLED')) { - $auth_methods[] = 'LOGIN'; + if (($key = array_search('LOGIN', $auth_methods)) !== false + && $this->getCapability('LOGINDISABLED') + ) { + unset($auth_methods[$key]); } } else { @@ -795,8 +791,10 @@ // Authenticate foreach ($auth_methods as $method) { switch ($method) { - case 'DIGEST-MD5': + case 'CRAM_MD5': + $method = 'CRAM-MD5'; case 'CRAM-MD5': + case 'DIGEST-MD5': case 'PLAIN': $result = $this->authenticate($user, $password, $method); break; -- Gitblit v1.9.1