]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-http: server: Restructured http-server-private.h.
authorStephan Bosch <stephan.bosch@dovecot.fi>
Mon, 27 Mar 2017 18:34:21 +0000 (20:34 +0200)
committerGitLab <gitlab@git.dovecot.net>
Tue, 4 Jul 2017 12:56:17 +0000 (15:56 +0300)
src/lib-http/http-server-private.h

index 31b54f820ed52817b612fdebd64427431c6e7a80..982cdd88b6b6cc3c1b0f7d394a74f5d76e6dc037 100644 (file)
@@ -6,11 +6,19 @@
 #include "http-server.h"
 #include "llist.h"
 
-#define HTTP_SERVER_REQUEST_MAX_TARGET_LENGTH 4096
-
 struct http_server_request;
 struct http_server_connection;
 
+/*
+ * Defaults
+ */
+
+#define HTTP_SERVER_REQUEST_MAX_TARGET_LENGTH 4096
+
+/*
+ * Types
+ */
+
 enum http_server_request_state {
        /* New request; request header is still being parsed. */
        HTTP_SERVER_REQUEST_STATE_NEW = 0,
@@ -39,6 +47,10 @@ enum http_server_request_state {
        HTTP_SERVER_REQUEST_STATE_ABORTED
 };
 
+/*
+ * Objects
+ */
+
 struct http_server_response {
        struct http_server_request *request;
 
@@ -143,6 +155,27 @@ struct http_server {
        bool shutting_down:1;    /* shutting down server */
 };
 
+/*
+ * Forward declarations
+ */
+
+bool http_server_connection_pending_payload(
+       struct http_server_connection *conn);
+
+/*
+ * Response
+ */
+
+void http_server_response_free(struct http_server_response *resp);
+int http_server_response_send(struct http_server_response *resp,
+                            const char **error_r);
+int http_server_response_send_more(struct http_server_response *resp,
+                                 const char **error_r);
+
+/*
+ * Request
+ */
+
 static inline const char *
 http_server_request_label(struct http_server_request *req)
 {
@@ -156,24 +189,25 @@ http_server_request_label(struct http_server_request *req)
                req->req.method, req->req.target_raw);
 }
 
-static inline const char *
-http_server_connection_label(struct http_server_connection *conn)
+static inline bool
+http_server_request_is_new(struct http_server_request *req)
 {
-       return conn->conn.name;
+       return (req->state == HTTP_SERVER_REQUEST_STATE_NEW);
 }
 
-bool http_server_connection_pending_payload(struct http_server_connection *conn);
-
-
-/* response */
-
-void http_server_response_free(struct http_server_response *resp);
-int http_server_response_send(struct http_server_response *resp,
-                            const char **error_r);
-int http_server_response_send_more(struct http_server_response *resp,
-                                 const char **error_r);
+static inline bool
+http_server_request_is_complete(struct http_server_request *req)
+{
+       return (req->failed || req->conn->input_broken ||
+               (req->next != NULL && !http_server_request_is_new(req->next)) ||
+               !http_server_connection_pending_payload(req->conn));
+}
 
-/* request */
+static inline bool
+http_server_request_version_equals(struct http_server_request *req,
+       unsigned int major, unsigned int minor) {
+       return (req->req.version_major == major && req->req.version_minor == minor);
+}
 
 struct http_server_request *
 http_server_request_new(struct http_server_connection *conn);
@@ -189,28 +223,31 @@ void http_server_request_submit_response(struct http_server_request *req);
 void http_server_request_ready_to_respond(struct http_server_request *req);
 void http_server_request_finished(struct http_server_request *req);
 
-static inline bool
-http_server_request_is_new(struct http_server_request *req)
+/*
+ * connection
+ */
+
+static inline const char *
+http_server_connection_label(struct http_server_connection *conn)
 {
-       return (req->state == HTTP_SERVER_REQUEST_STATE_NEW);
+       return conn->conn.name;
 }
 
-static inline bool
-http_server_request_is_complete(struct http_server_request *req)
+static inline void
+http_server_connection_add_request(struct http_server_connection *conn,
+       struct http_server_request *sreq)
 {
-       return (req->failed || req->conn->input_broken ||
-               (req->next != NULL && !http_server_request_is_new(req->next)) ||
-               !http_server_connection_pending_payload(req->conn));
+       DLLIST2_APPEND(&conn->request_queue_head, &conn->request_queue_tail, sreq);
+       conn->request_queue_count++;
 }
-
-static inline bool
-http_server_request_version_equals(struct http_server_request *req,
-       unsigned int major, unsigned int minor) {
-       return (req->req.version_major == major && req->req.version_minor == minor);
+static inline void
+http_server_connection_remove_request(struct http_server_connection *conn,
+       struct http_server_request *sreq)
+{
+       DLLIST2_REMOVE(&conn->request_queue_head, &conn->request_queue_tail, sreq);
+       conn->request_queue_count--;
 }
 
-/* connection */
-
 struct connection_list *http_server_connection_list_init(void);
 
 bool http_server_connection_shut_down(struct http_server_connection *conn);
@@ -230,19 +267,7 @@ void http_server_connection_tunnel(struct http_server_connection **_conn,
 
 int http_server_connection_discard_payload(
        struct http_server_connection *conn);
-bool http_server_connection_pending_payload(struct http_server_connection *conn);
-
-static inline void http_server_connection_add_request(struct http_server_connection *conn,
-                                                     struct http_server_request *sreq)
-{
-       DLLIST2_APPEND(&conn->request_queue_head, &conn->request_queue_tail, sreq);
-       conn->request_queue_count++;
-}
-static inline void http_server_connection_remove_request(struct http_server_connection *conn,
-                                                        struct http_server_request *sreq)
-{
-       DLLIST2_REMOVE(&conn->request_queue_head, &conn->request_queue_tail, sreq);
-       conn->request_queue_count--;
-}
+bool http_server_connection_pending_payload(
+       struct http_server_connection *conn);
 
 #endif