dovecot-2.2: lib-imap-client: Ask CAPABILITY again after STARTTLS
dovecot at dovecot.org
dovecot at dovecot.org
Sat Jun 1 02:57:01 EEST 2013
details: http://hg.dovecot.org/dovecot-2.2/rev/3ed452837a8d
changeset: 16438:3ed452837a8d
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 c4a85c9df948 -r 3ed452837a8d src/lib-imap-client/imapc-connection.c
--- a/src/lib-imap-client/imapc-connection.c Sat Jun 01 02:56:25 2013 +0300
+++ b/src/lib-imap-client/imapc-connection.c Sat Jun 01 02:56:57 2013 +0300
@@ -115,6 +115,8 @@
unsigned int idle_plus_waiting: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);
@@ -752,6 +754,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",
@@ -761,8 +764,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