]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-http: Add function to update HTTP response status
authorAki Tuomi <aki.tuomi@dovecot.fi>
Mon, 1 Feb 2016 12:44:11 +0000 (14:44 +0200)
committerAki Tuomi <aki.tuomi@dovecot.fi>
Mon, 1 Feb 2016 13:09:53 +0000 (15:09 +0200)
src/lib-http/http-server-response.c
src/lib-http/http-server.h

index 54c891d113bd55d3af324fb2f2ff54eb3d35904f..0ad0a8aad64319d0b8663fa3f4471f2e23cf9f55 100644 (file)
@@ -92,6 +92,16 @@ void http_server_response_add_header(struct http_server_response *resp,
        str_printfa(resp->headers, "%s: %s\r\n", key, value);
 }
 
+void http_server_response_update_status(struct http_server_response *resp,
+                                       unsigned int status,
+                                       const char *reason)
+{
+       i_assert(!resp->submitted);
+       resp->status = status;
+       /* free not called because pool is alloconly */
+       resp->reason = p_strdup(resp->request->pool, reason);
+}
+
 void http_server_response_set_date(struct http_server_response *resp,
                                    time_t date)
 {
index 260bd26afe588f3d1146a3ec77cc66e804414a34..0b6d48ea9f0e369fa4ad135a0576a0f770fad6f7 100644 (file)
@@ -144,6 +144,9 @@ http_server_response_create(struct http_server_request *req,
        unsigned int status, const char *reason);
 void http_server_response_add_header(struct http_server_response *resp,
                                    const char *key, const char *value);
+/* Change the response code and text, cannot be used after submission */
+void http_server_response_update_status(struct http_server_response *resp,
+                                       unsigned int status, const char *reason);
 void http_server_response_set_date(struct http_server_response *resp,
                                    time_t date);
 void http_server_response_set_payload(struct http_server_response *resp,