dovecot/dovecot-1.2.6-greetings.patch

99 lines
4.2 KiB
Diff
Raw Normal View History

2009-11-02 17:03:59 +00:00
diff -up dovecot-1.2.6/src/imap-login/client.c.greetings dovecot-1.2.6/src/imap-login/client.c
--- dovecot-1.2.6/src/imap-login/client.c.greetings 2009-10-05 20:10:44.000000000 +0200
+++ dovecot-1.2.6/src/imap-login/client.c 2009-10-21 12:20:03.995249615 +0200
@@ -93,11 +93,12 @@ bool client_skip_line(struct imap_client
static const char *get_capability(struct imap_client *client, bool full)
{
- const char *auths;
+ const char *auths, *cap_str;
+ cap_str = full || capability_string_overridden ? capability_string :
+ CAPABILITY_BANNER_STRING;
auths = client_authenticate_get_capabilities(client->common.secured);
- return t_strconcat(full ? capability_string : CAPABILITY_BANNER_STRING,
- (ssl_initialized && !client->common.tls) ?
+ return t_strconcat(cap_str, (ssl_initialized && !client->common.tls) ?
" STARTTLS" : "",
disable_plaintext_auth && !client->common.secured ?
" LOGINDISABLED" : "", auths, NULL);
diff -up dovecot-1.2.6/src/login-common/common.h.greetings dovecot-1.2.6/src/login-common/common.h
--- dovecot-1.2.6/src/login-common/common.h.greetings 2009-01-15 21:27:26.000000000 +0100
+++ dovecot-1.2.6/src/login-common/common.h 2009-10-21 12:20:03.996248613 +0200
@@ -23,7 +23,7 @@ extern const char *trusted_networks;
extern unsigned int max_connections;
extern unsigned int login_process_uid;
extern struct auth_client *auth_client;
-extern bool closing_down;
+extern bool closing_down, capability_string_overridden;
void main_ref(void);
void main_unref(void);
diff -up dovecot-1.2.6/src/login-common/main.c.greetings dovecot-1.2.6/src/login-common/main.c
--- dovecot-1.2.6/src/login-common/main.c.greetings 2009-08-12 20:03:16.000000000 +0200
+++ dovecot-1.2.6/src/login-common/main.c 2009-10-21 12:20:03.996248613 +0200
@@ -28,7 +28,7 @@ const char *trusted_networks;
unsigned int max_connections;
unsigned int login_process_uid;
struct auth_client *auth_client;
-bool closing_down;
+bool closing_down, capability_string_overridden;
static const char *process_name;
static struct ioloop *ioloop;
@@ -354,8 +354,11 @@ static void main_init(void)
/* capability default is set in imap/pop3-login */
value = getenv("CAPABILITY_STRING");
- if (value != NULL && *value != '\0')
+ if (value != NULL && *value != '\0') {
capability_string = value;
+ if (getenv("CAPABILITY_STRING_OVERRIDDEN") != NULL)
+ capability_string_overridden = TRUE;
+ }
closing_down = FALSE;
main_refcount = 0;
diff -up dovecot-1.2.6/src/login-common/ssl-proxy-openssl.c.greetings dovecot-1.2.6/src/login-common/ssl-proxy-openssl.c
--- dovecot-1.2.6/src/login-common/ssl-proxy-openssl.c.greetings 2009-09-29 16:14:15.000000000 +0200
+++ dovecot-1.2.6/src/login-common/ssl-proxy-openssl.c 2009-10-21 12:20:04.000248772 +0200
@@ -715,6 +715,7 @@ static DH *ssl_tmp_dh_callback(SSL *ssl
return ssl_params.dh_1024;
}
+#ifdef HAVE_SSL_CTX_SET_INFO_CALLBACK
static void ssl_info_callback(const SSL *ssl, int where, int ret)
{
struct ssl_proxy *proxy;
@@ -732,6 +733,7 @@ static void ssl_info_callback(const SSL
net_ip2addr(&proxy->ip));
}
}
+#endif
static int ssl_verify_client_cert(int preverify_ok, X509_STORE_CTX *ctx)
{
@@ -814,8 +816,10 @@ static void ssl_proxy_ctx_init(SSL_CTX *
cafile, ssl_last_error());
}
}
+#ifdef HAVE_SSL_CTX_SET_INFO_CALLBACK
if (verbose_ssl)
SSL_CTX_set_info_callback(ssl_ctx, ssl_info_callback);
+#endif
if (SSL_CTX_need_tmp_RSA(ssl_ctx))
SSL_CTX_set_tmp_rsa_callback(ssl_ctx, ssl_gen_rsa_key);
SSL_CTX_set_tmp_dh_callback(ssl_ctx, ssl_tmp_dh_callback);
diff -up dovecot-1.2.6/src/master/login-process.c.greetings dovecot-1.2.6/src/master/login-process.c
--- dovecot-1.2.6/src/master/login-process.c.greetings 2009-10-21 12:20:03.965978906 +0200
+++ dovecot-1.2.6/src/master/login-process.c 2009-10-21 12:23:04.696873716 +0200
@@ -635,6 +635,8 @@ static void login_process_init_env(struc
*set->imap_capability != '\0' ?
set->imap_capability :
set->imap_generated_capability, NULL));
+ if (*set->imap_capability != '\0')
+ env_put("CAPABILITY_STRING_OVERRIDDEN=1");
} else if (group->mail_process_type == PROCESS_TYPE_MANAGESIEVE) {
env_put(t_strconcat("CAPABILITY_STRING=",
set->managesieve_generated_capability, NULL));