summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Machniak <alec@alec.pl>2012-09-21 20:57:53 +0200
committerAleksander Machniak <alec@alec.pl>2012-09-21 20:57:53 +0200
commite695162ef76054050e4181e4d28f28cf1981386b (patch)
treeecc3835d378d71e1f5d10bd5c296ecb35aab247c
parent97313ac258914e4c26aefec912e8677d8436175e (diff)
Change default port to 4190 (IANA-allocated), add port auto-detection (#1488713)
-rw-r--r--plugins/managesieve/Changelog1
-rw-r--r--plugins/managesieve/config.inc.php.dist5
-rw-r--r--plugins/managesieve/managesieve.php19
3 files changed, 17 insertions, 8 deletions
diff --git a/plugins/managesieve/Changelog b/plugins/managesieve/Changelog
index 6fcd17a95..a1dd7e0ca 100644
--- a/plugins/managesieve/Changelog
+++ b/plugins/managesieve/Changelog
@@ -1,5 +1,6 @@
- Fixed issue with DBMail bug [http://pear.php.net/bugs/bug.php?id=19077] (#1488594)
- Added support for enotify/notify (RFC5435, RFC5436, draft-ietf-sieve-notify-00)
+- Change default port to 4190 (IANA-allocated), add port auto-detection (#1488713)
* version 5.2 [2012-07-24]
-----------------------------------------------------------
diff --git a/plugins/managesieve/config.inc.php.dist b/plugins/managesieve/config.inc.php.dist
index cb9b2a97f..1f34564c5 100644
--- a/plugins/managesieve/config.inc.php.dist
+++ b/plugins/managesieve/config.inc.php.dist
@@ -1,7 +1,8 @@
<?php
-// managesieve server port
-$rcmail_config['managesieve_port'] = 2000;
+// managesieve server port. When empty the port will be determined automatically
+// using getservbyname() function, with 4190 as a fallback.
+$rcmail_config['managesieve_port'] = null;
// managesieve server address, default is localhost.
// Replacement variables supported in host name:
diff --git a/plugins/managesieve/managesieve.php b/plugins/managesieve/managesieve.php
index ccfc95076..0ddeba542 100644
--- a/plugins/managesieve/managesieve.php
+++ b/plugins/managesieve/managesieve.php
@@ -7,13 +7,13 @@
* It's clickable interface which operates on text scripts and communicates
* with server using managesieve protocol. Adds Filters tab in Settings.
*
- * @version 5.0
+ * @version @package_version@
* @author Aleksander Machniak <alec@alec.pl>
*
* Configuration (see config.inc.php.dist)
*
- * Copyright (C) 2008-2011, The Roundcube Dev Team
- * Copyright (C) 2011, Kolab Systems AG
+ * Copyright (C) 2008-2012, The Roundcube Dev Team
+ * Copyright (C) 2011-2012, Kolab Systems AG
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2
@@ -62,8 +62,9 @@ class managesieve extends rcube_plugin
"x-beenthere",
);
- const VERSION = '5.2';
+ const VERSION = '5.2';
const PROGNAME = 'Roundcube (Managesieve)';
+ const PORT = 4190;
function init()
@@ -200,10 +201,16 @@ class managesieve extends rcube_plugin
set_include_path($include_path);
$host = rcube_parse_host($this->rc->config->get('managesieve_host', 'localhost'));
- $port = $this->rc->config->get('managesieve_port', 2000);
-
$host = rcube_idn_to_ascii($host);
+ $port = $this->rc->config->get('managesieve_port');
+ if (empty($port)) {
+ $port = getservbyname('sieve', 'tcp');
+ if (empty($port)) {
+ $port = self::PORT;
+ }
+ }
+
$plugin = $this->rc->plugins->exec_hook('managesieve_connect', array(
'user' => $_SESSION['username'],
'password' => $this->rc->decrypt($_SESSION['password']),