]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
doveadm-server: http: Moved doveadm_http_server_send_response().
authorStephan Bosch <stephan.bosch@dovecot.fi>
Sat, 7 Oct 2017 17:11:04 +0000 (19:11 +0200)
committerStephan Bosch <stephan.bosch@dovecot.fi>
Tue, 24 Oct 2017 20:29:19 +0000 (22:29 +0200)
src/doveadm/client-connection-http.c

index 2f4ec1ea9cbbc45eb42f2e4b0ccbb52f34d810f3..2e4b44716c1c4eb15118e4a58c26ee89822affad 100644 (file)
@@ -697,6 +697,38 @@ doveadm_http_server_print_mounts(struct client_connection_http *conn)
        doveadm_http_server_send_response(conn);
 }
 
+static void doveadm_http_server_send_response(void *context)
+{
+       struct client_connection_http *conn = context;
+       struct http_server_request *http_sreq = conn->http_request;
+       struct http_server_response *http_resp;
+       struct istream *payload = NULL;
+
+       if (conn->output != NULL) {
+               if (o_stream_nfinish(conn->output) == -1) {
+                       i_info("error writing output: %s",
+                              o_stream_get_error(conn->output));
+                       o_stream_destroy(&conn->output);
+                       http_server_request_fail_close(http_sreq, 500, "Internal server error");
+                       return;
+               }
+
+               payload = iostream_temp_finish(&conn->output,
+                                              IO_BLOCK_SIZE);
+       }
+       
+       http_resp = http_server_response_create(http_sreq, 200, "OK");
+       http_server_response_add_header(http_resp, "Content-Type",
+               "application/json; charset=utf-8");
+
+       if (payload != NULL) {
+               http_server_response_set_payload(http_resp, payload);
+               i_stream_unref(&payload);
+       }
+
+       http_server_response_submit_close(http_resp);
+}
+
 static bool
 doveadm_http_server_auth_basic(struct client_connection_http *conn,
                               const struct http_auth_credentials *creds)
@@ -845,38 +877,6 @@ doveadm_http_server_handle_request(void *context, struct http_server_request *ht
        }
 }
 
-static void doveadm_http_server_send_response(void *context)
-{
-       struct client_connection_http *conn = context;
-       struct http_server_request *http_sreq = conn->http_request;
-       struct http_server_response *http_resp;
-       struct istream *payload = NULL;
-
-       if (conn->output != NULL) {
-               if (o_stream_nfinish(conn->output) == -1) {
-                       i_info("error writing output: %s",
-                              o_stream_get_error(conn->output));
-                       o_stream_destroy(&conn->output);
-                       http_server_request_fail_close(http_sreq, 500, "Internal server error");
-                       return;
-               }
-
-               payload = iostream_temp_finish(&conn->output,
-                                              IO_BLOCK_SIZE);
-       }
-       
-       http_resp = http_server_response_create(http_sreq, 200, "OK");
-       http_server_response_add_header(http_resp, "Content-Type",
-               "application/json; charset=utf-8");
-
-       if (payload != NULL) {
-               http_server_response_set_payload(http_resp, payload);
-               i_stream_unref(&payload);
-       }
-
-       http_server_response_submit_close(http_resp);
-}
-
 static void doveadm_http_server_connection_destroy(void *context, const char *reason);
 
 static const struct http_server_callbacks doveadm_http_callbacks = {