dovecot-2.1: lib-imap-client: Ask CAPABILITY again after STARTTLS
dovecot at dovecot.org
dovecot at dovecot.org
Sat Jun 1 02:57:35 EEST 2013
details: http://hg.dovecot.org/dovecot-2.1/rev/7d34543189c6
changeset: 14976:7d34543189c6
user: Timo Sirainen <tss at iki.fi>
date: Sat Jun 01 02:56:57 2013 +0300
description:
lib-imap-client: Ask CAPABILITY again after STARTTLS
diffstat:
src/lib-imap-client/imapc-connection.c | 12 ++++++++++--
1 files changed, 10 insertions(+), 2 deletions(-)
diffs (36 lines):
diff -r e4b66c2912da -r 7d34543189c6 src/lib-imap-client/imapc-connection.c
--- a/src/lib-imap-client/imapc-connection.c Thu May 30 22:27:38 2013 +0300
+++ b/src/lib-imap-client/imapc-connection.c Sat Jun 01 02:56:57 2013 +0300
@@ -118,6 +118,8 @@
unsigned int handshake_failed:1;
};
+static void imapc_connection_capability_cb(const struct imapc_command_reply *reply,
+ void *context);
static int imapc_connection_output(struct imapc_connection *conn);
static int imapc_connection_ssl_init(struct imapc_connection *conn);
static void imapc_command_free(struct imapc_command *cmd);
@@ -753,6 +755,7 @@
void *context)
{
struct imapc_connection *conn = context;
+ struct imapc_command *cmd;
if (reply->state != IMAPC_COMMAND_STATE_OK) {
imapc_connection_input_error(conn, "STARTTLS failed: %s",
@@ -762,8 +765,13 @@
if (imapc_connection_ssl_init(conn) < 0)
imapc_connection_disconnect(conn);
- else
- imapc_connection_authenticate(conn);
+ else {
+ /* get updated capabilities */
+ cmd = imapc_connection_cmd(conn, imapc_connection_capability_cb,
+ conn);
+ imapc_command_set_flags(cmd, IMAPC_COMMAND_FLAG_PRELOGIN);
+ imapc_command_send(cmd, "CAPABILITY");
+ }
}
static void imapc_connection_starttls(struct imapc_connection *conn)
More information about the dovecot-cvs
mailing list