From: Timo Sirainen Date: Wed, 23 Nov 2011 22:52:09 +0000 (+0200) Subject: login: Use AUTH_REQUEST_FLAG_SUPPORT_FINAL_RESP if protocol supports it. X-Git-Tag: 2.1.rc1~14 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=afa4eb0295500d983e20484584d3e87a4651276c;p=thirdparty%2Fdovecot%2Fcore.git login: Use AUTH_REQUEST_FLAG_SUPPORT_FINAL_RESP if protocol supports it. --- diff --git a/src/imap-login/client.c b/src/imap-login/client.c index 4fdd56c892..8333687ae3 100644 --- a/src/imap-login/client.c +++ b/src/imap-login/client.c @@ -499,7 +499,9 @@ static const struct login_binary imap_login_binary = { .client_vfuncs = &imap_client_vfuncs, .preinit = imap_login_preinit, .init = imap_login_init, - .deinit = imap_login_deinit + .deinit = imap_login_deinit, + + .sasl_support_final_reply = FALSE }; int main(int argc, char *argv[]) diff --git a/src/login-common/login-common.h b/src/login-common/login-common.h index 0a6ac12fe5..003d0f840b 100644 --- a/src/login-common/login-common.h +++ b/src/login-common/login-common.h @@ -27,6 +27,8 @@ struct login_binary { void (*preinit)(void); void (*init)(void); void (*deinit)(void); + + bool sasl_support_final_reply; }; extern const struct login_binary *login_binary; diff --git a/src/login-common/sasl-server.c b/src/login-common/sasl-server.c index 25b0e58181..a021b3abfb 100644 --- a/src/login-common/sasl-server.c +++ b/src/login-common/sasl-server.c @@ -72,6 +72,8 @@ client_get_auth_flags(struct client *client) /* e.g. webmail */ auth_flags |= AUTH_REQUEST_FLAG_NO_PENALTY; } + if (login_binary->sasl_support_final_reply) + auth_flags |= AUTH_REQUEST_FLAG_SUPPORT_FINAL_RESP; return auth_flags; } diff --git a/src/pop3-login/client.c b/src/pop3-login/client.c index 387ac41a1a..d61bc059f4 100644 --- a/src/pop3-login/client.c +++ b/src/pop3-login/client.c @@ -252,7 +252,9 @@ static const struct login_binary pop3_login_binary = { .client_vfuncs = &pop3_client_vfuncs, .preinit = pop3_login_preinit, .init = pop3_login_init, - .deinit = pop3_login_deinit + .deinit = pop3_login_deinit, + + .sasl_support_final_reply = FALSE }; int main(int argc, char *argv[])