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