dovecot-2.0: login: If proxy returns ssl=yes and no port, switch...
dovecot at dovecot.org
dovecot at dovecot.org
Wed Apr 14 19:19:30 EEST 2010
details: http://hg.dovecot.org/dovecot-2.0/rev/5f3edac6b3bf
changeset: 11155:5f3edac6b3bf
user: Timo Sirainen <tss at iki.fi>
date: Wed Apr 14 19:19:27 2010 +0300
description:
login: If proxy returns ssl=yes and no port, switch port to imaps/pop3s.
diffstat:
src/imap-login/client.c | 2 +-
src/login-common/client-common-auth.c | 9 ++++++---
src/login-common/login-common.h | 2 +-
src/pop3-login/client.c | 2 +-
4 files changed, 9 insertions(+), 6 deletions(-)
diffs (70 lines):
diff -r 9188fc60d615 -r 5f3edac6b3bf src/imap-login/client.c
--- a/src/imap-login/client.c Wed Apr 14 19:05:42 2010 +0300
+++ b/src/imap-login/client.c Wed Apr 14 19:19:27 2010 +0300
@@ -30,7 +30,7 @@
const char *login_protocol = "imap";
const char *login_process_name = "imap-login";
-unsigned int login_default_port = 143;
+unsigned int login_default_port = 143, login_default_ssl_port = 993;
void login_process_preinit(void)
{
diff -r 9188fc60d615 -r 5f3edac6b3bf src/login-common/client-common-auth.c
--- a/src/login-common/client-common-auth.c Wed Apr 14 19:05:42 2010 +0300
+++ b/src/login-common/client-common-auth.c Wed Apr 14 19:19:27 2010 +0300
@@ -57,7 +57,6 @@
const char *key, *value, *p;
memset(reply_r, 0, sizeof(*reply_r));
- reply_r->port = login_default_port;
for (; *args != NULL; args++) {
p = strchr(*args, '=');
@@ -91,9 +90,11 @@
else if (strcmp(key, "master") == 0)
reply_r->master_user = value;
else if (strcmp(key, "ssl") == 0) {
- if (strcmp(value, "yes") == 0)
+ if (strcmp(value, "yes") == 0) {
reply_r->ssl_flags |= PROXY_SSL_FLAG_YES;
- else if (strcmp(value, "any-cert") == 0) {
+ if (reply_r->port == 0)
+ reply_r->port = login_default_ssl_port;
+ } else if (strcmp(value, "any-cert") == 0) {
reply_r->ssl_flags |= PROXY_SSL_FLAG_YES |
PROXY_SSL_FLAG_ANY_CERT;
}
@@ -104,6 +105,8 @@
} else if (client->set->auth_debug)
i_debug("Ignoring unknown passdb extra field: %s", key);
}
+ if (reply_r->port == 0)
+ reply_r->port = login_default_port;
if (reply_r->destuser == NULL)
reply_r->destuser = client->virtual_user;
diff -r 9188fc60d615 -r 5f3edac6b3bf src/login-common/login-common.h
--- a/src/login-common/login-common.h Wed Apr 14 19:05:42 2010 +0300
+++ b/src/login-common/login-common.h Wed Apr 14 19:19:27 2010 +0300
@@ -13,7 +13,7 @@
"Plaintext authentication disallowed on non-secure (SSL/TLS) connections."
extern const char *login_protocol, *login_process_name;
-extern unsigned int login_default_port;
+extern unsigned int login_default_port, login_default_ssl_port;
extern struct auth_client *auth_client;
extern struct master_auth *master_auth;
diff -r 9188fc60d615 -r 5f3edac6b3bf src/pop3-login/client.c
--- a/src/pop3-login/client.c Wed Apr 14 19:05:42 2010 +0300
+++ b/src/pop3-login/client.c Wed Apr 14 19:19:27 2010 +0300
@@ -24,7 +24,7 @@
const char *login_protocol = "pop3";
const char *login_process_name = "pop3-login";
-unsigned int login_default_port = 110;
+unsigned int login_default_port = 110, login_default_ssl_port = 995;
void login_process_preinit(void)
{
More information about the dovecot-cvs
mailing list