From: Stephan Bosch Date: Wed, 4 Nov 2020 21:43:44 +0000 (+0100) Subject: auth: auth-request-handler - Finish CONT reply in separate function X-Git-Tag: 2.4.0~27 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2c2c5f44c043654a3653e3b7314f2d51f1f1ff28;p=thirdparty%2Fdovecot%2Fcore.git auth: auth-request-handler - Finish CONT reply in separate function --- diff --git a/src/auth/auth-request-handler.c b/src/auth/auth-request-handler.c index de29f3a5c4..e470a284ef 100644 --- a/src/auth/auth-request-handler.c +++ b/src/auth/auth-request-handler.c @@ -261,6 +261,22 @@ auth_request_handle_failure(struct auth_request *request, const char *reply) } } +static void +auth_request_handler_reply_continue_finish(struct auth_request *request, + const void *auth_reply, + size_t reply_size) +{ + struct auth_request_handler *handler = request->handler; + string_t *str; + + str = t_str_new(64 + MAX_BASE64_ENCODED_SIZE(reply_size)); + str_printfa(str, "CONT\t%u\t", request->id); + base64_encode(auth_reply, reply_size, str); + + request->accept_cont_input = TRUE; + handler->callback(str_c(str), handler->conn); +} + static void auth_request_handler_reply_success_finish(struct auth_request *request) { @@ -385,12 +401,8 @@ auth_request_handler_default_reply_callback(struct auth_request *request, switch (result) { case AUTH_CLIENT_RESULT_CONTINUE: - str = t_str_new(16 + MAX_BASE64_ENCODED_SIZE(reply_size)); - str_printfa(str, "CONT\t%u\t", request->id); - base64_encode(auth_reply, reply_size, str); - - request->accept_cont_input = TRUE; - handler->callback(str_c(str), handler->conn); + auth_request_handler_reply_continue_finish(request, auth_reply, + reply_size); break; case AUTH_CLIENT_RESULT_SUCCESS: if (reply_size > 0) {