alecpl
2011-09-19 e7e79470e425c75495a846435b43350f0b793bb7
- Allow setting connection options in imap_connect hook


3 files modified
11 ■■■■ changed files
program/include/rcmail.php 2 ●●● patch | view | raw | blame | history
program/include/rcube_imap.php 5 ●●●●● patch | view | raw | blame | history
program/include/rcube_imap_generic.php 4 ●●●● patch | view | raw | blame | history
program/include/rcmail.php
@@ -615,7 +615,7 @@
    // Setting root and delimiter before establishing the connection
    // can save time detecting them using NAMESPACE and LIST
    $options = array(
      'auth_method' => $this->config->get('imap_auth_type', 'check'),
      'auth_type'   => $this->config->get('imap_auth_type', 'check'),
      'auth_cid'    => $this->config->get('imap_auth_cid'),
      'auth_pw'     => $this->config->get('imap_auth_pw'),
      'debug'       => (bool) $this->config->get('imap_debug', 0),
program/include/rcube_imap.php
@@ -176,12 +176,13 @@
        $attempt = 0;
        do {
            $data = rcmail::get_instance()->plugins->exec_hook('imap_connect',
                array('host' => $host, 'user' => $user, 'attempt' => ++$attempt));
                array_merge($this->options, array('host' => $host, 'user' => $user,
                    'attempt' => ++$attempt)));
            if (!empty($data['pass']))
                $pass = $data['pass'];
            $this->conn->connect($data['host'], $data['user'], $pass, $this->options);
            $this->conn->connect($data['host'], $data['user'], $pass, $data);
        } while(!$this->conn->connected() && $data['retry']);
        $this->host = $data['host'];
program/include/rcube_imap_generic.php
@@ -672,8 +672,8 @@
            $this->prefs = $options;
        }
        // set auth method
        if (!empty($this->prefs['auth_method'])) {
            $auth_method = strtoupper($this->prefs['auth_method']);
        if (!empty($this->prefs['auth_type'])) {
            $auth_method = strtoupper($this->prefs['auth_type']);
        } else {
            $auth_method = 'CHECK';
        }