]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
auth: auth-request-handler - Finish CONT reply in separate function
authorStephan Bosch <stephan.bosch@open-xchange.com>
Wed, 4 Nov 2020 21:43:44 +0000 (22:43 +0100)
committerAki Tuomi <aki.tuomi@open-xchange.com>
Wed, 12 Feb 2025 10:34:16 +0000 (12:34 +0200)
src/auth/auth-request-handler.c

index de29f3a5c4a1b694dd4783ab224e501967cd9440..e470a284ef6ca0f2b3e096abcfb1624980590c28 100644 (file)
@@ -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) {