alecpl
2010-10-22 a1fe6bd11d7afb8ddd42d1fe465a6d2d93b51592
- Add support for IMAP proxy authentication (#1486690)


4 files modified
24 ■■■■ changed files
CHANGELOG 3 ●●●● patch | view | raw | blame | history
config/main.inc.php.dist 8 ●●●● patch | view | raw | blame | history
program/include/rcmail.php 2 ●●●●● patch | view | raw | blame | history
program/include/rcube_imap_generic.php 11 ●●●●● patch | view | raw | blame | history
CHANGELOG
@@ -44,7 +44,8 @@
- Add SASL-IR support in IMAP (RFC 4959)
- Add LOGINDISABLED support (RFC 2595)
- Add support for AUTH=PLAIN in IMAP authentication
- Re-implemented SMTP proxy authorization support
- Re-implemented SMTP proxy authentication support
- Add support for IMAP proxy authentication (#1486690)
RELEASE 0.4.2
-------------
config/main.inc.php.dist
@@ -87,6 +87,12 @@
// IMAP connection timeout, in seconds. Default: 0 (no limit)
$rcmail_config['imap_timeout'] = 0;
// Optional IMAP authentication identifier to be used as authorization proxy
$rcmail_config['imap_auth_cid'] = null;
// Optional IMAP authentication password to be used for imap_auth_cid
$rcmail_config['imap_auth_pw'] = null;
// ----------------------------------
// SMTP
// ----------------------------------
@@ -120,7 +126,7 @@
// Optional SMTP authentication identifier to be used as authorization proxy
$rcmail_config['smtp_auth_cid'] = null;
// Optional SMTP authorization password to be used for smtp_auth_cid
// Optional SMTP authentication password to be used for smtp_auth_cid
$rcmail_config['smtp_auth_pw'] = null;
// SMTP HELO host 
program/include/rcmail.php
@@ -501,6 +501,8 @@
    // can save time detecting them using NAMESPACE and LIST
    $options = array(
      'auth_method' => $this->config->get('imap_auth_type', 'check'),
      'auth_cid'    => $this->config->get('imap_auth_cid'),
      'auth_pw'     => $this->config->get('imap_auth_pw'),
      'delimiter'   => isset($_SESSION['imap_delimiter']) ? $_SESSION['imap_delimiter'] : $this->config->get('imap_delimiter'),
      'rootdir'     => isset($_SESSION['imap_root']) ? $_SESSION['imap_root'] : $this->config->get('imap_root'),
      'debug_mode'  => (bool) $this->config->get('imap_debug', 0),
program/include/rcube_imap_generic.php
@@ -420,7 +420,16 @@
            }
        }
        else { // PLAIN
            $reply = base64_encode($user . chr(0) . $user . chr(0) . $pass);
            // proxy authentication
            if (!empty($this->prefs['auth_cid'])) {
                $authc = $this->prefs['auth_cid'];
                $pass  = $this->prefs['auth_pw'];
            }
            else {
                $authc = $user;
            }
            $reply = base64_encode($user . chr(0) . $authc . chr(0) . $pass);
            // RFC 4959 (SASL-IR): save one round trip
            if ($this->getCapability('SASL-IR')) {