diff options
| author | lijia <[email protected]> | 2024-08-16 14:58:19 +0800 |
|---|---|---|
| committer | lijia <[email protected]> | 2024-08-21 09:38:18 +0800 |
| commit | 3cdfabb6831eb7945af57a50254fa31d004620e9 (patch) | |
| tree | 87e68df9ddc077968322587531d445fc01923a39 /include | |
| parent | cd2a2360fe23711aedd2f25b7223615c4a11becb (diff) | |
Adjust benchmark directory,enable HTTP test,rename variables,format codes
Diffstat (limited to 'include')
| -rw-r--r-- | include/stellar/http.h | 182 |
1 files changed, 93 insertions, 89 deletions
diff --git a/include/stellar/http.h b/include/stellar/http.h index ba00ab7..3c749ca 100644 --- a/include/stellar/http.h +++ b/include/stellar/http.h @@ -1,4 +1,4 @@ -#pragma once +#pragma once #ifdef __cplusplus extern "C" @@ -6,94 +6,98 @@ extern "C" #endif #include <bits/types/struct_iovec.h> -struct http_message; -#define HTTP_DECODER_TOPIC "HTTP_DECODER_MESSAGE" - -enum http_message_type { - HTTP_TRANSACTION_START, - - HTTP_MESSAGE_REQ_LINE, - HTTP_MESSAGE_REQ_HEADER, - HTTP_MESSAGE_REQ_HEADER_END, - HTTP_MESSAGE_REQ_BODY_START, - HTTP_MESSAGE_REQ_BODY, - HTTP_MESSAGE_REQ_BODY_END, - - HTTP_MESSAGE_RES_LINE, - HTTP_MESSAGE_RES_HEADER, - HTTP_MESSAGE_RES_HEADER_END, - HTTP_MESSAGE_RES_BODY_START, - HTTP_MESSAGE_RES_BODY, - HTTP_MESSAGE_RES_BODY_END, - - HTTP_TRANSACTION_END, - - HTTP_MESSAGE_MAX -}; - -struct http_header { - struct iovec key; - struct iovec val; -}; - -struct http_request_line { - struct iovec method; - struct iovec uri; - struct iovec version; - int major_version; - int minor_version; -}; - -struct http_response_line { - struct iovec version; - struct iovec status; - int major_version; - int minor_version; - int status_code; -}; - -typedef struct iovec hstring; - -enum http_message_type http_message_type_get(const struct http_message *msg); - -void http_message_request_line_get0(const struct http_message *msg, struct http_request_line *line); - -void http_message_response_line_get0(const struct http_message *msg, struct http_response_line *line); - -/* -* Pay attention: key->iov_base is case-insensitive. -*/ -void http_message_header_get0(const struct http_message *msg, const struct iovec *key, struct http_header *hdr_result); - -/** - * @brief loop reading all headers. - * - * @retval succeed( >= 0) failed(-1) -*/ -int http_message_header_next(const struct http_message *msg, struct http_header *header); - -/** - * @retval succeed( >= 0) failed(-1) -*/ -int http_message_reset_header_iter(struct http_message *msg); - -void http_message_raw_body_get0(const struct http_message *msg, struct iovec *body); - -/** - * @brief If the body hasn't been compressed, same as http_message_raw_body_get0(). - * -*/ -void http_message_decompress_body_get0(const struct http_message *msg, struct iovec *body); - -//raw -void http_message_raw_url_get0(const struct http_message *msg, struct iovec *url); - -void http_message_decoded_url_get0(const struct http_message *msg, struct iovec *url); - -/** - * @retval succeed( >= 0) failed(-1) -*/ -int http_message_get_transaction_seq(const struct http_message *msg); +#define HTTP_DECODER_TOPIC "HTTP_DECODER_MESSAGE" + struct http_message; + + enum http_message_type + { + HTTP_TRANSACTION_START, + + HTTP_MESSAGE_REQ_LINE, + HTTP_MESSAGE_REQ_HEADER, + HTTP_MESSAGE_REQ_HEADER_END, + HTTP_MESSAGE_REQ_BODY_START, + HTTP_MESSAGE_REQ_BODY, + HTTP_MESSAGE_REQ_BODY_END, + + HTTP_MESSAGE_RES_LINE, + HTTP_MESSAGE_RES_HEADER, + HTTP_MESSAGE_RES_HEADER_END, + HTTP_MESSAGE_RES_BODY_START, + HTTP_MESSAGE_RES_BODY, + HTTP_MESSAGE_RES_BODY_END, + + HTTP_TRANSACTION_END, + + HTTP_MESSAGE_MAX + }; + + struct http_header + { + struct iovec key; + struct iovec val; + }; + + struct http_request_line + { + struct iovec method; + struct iovec uri; + struct iovec version; + int major_version; + int minor_version; + }; + + struct http_response_line + { + struct iovec version; + struct iovec status; + int major_version; + int minor_version; + int status_code; + }; + + typedef struct iovec hstring; + + enum http_message_type http_message_type_get(const struct http_message *msg); + + void http_message_request_line_get0(const struct http_message *msg, struct http_request_line *line); + + void http_message_response_line_get0(const struct http_message *msg, struct http_response_line *line); + + /* + * Pay attention: key->iov_base is case-insensitive. + */ + void http_message_header_get0(const struct http_message *msg, const struct iovec *key, struct http_header *hdr_result); + + /** + * @brief loop reading all headers. + * + * @retval succeed( >= 0) failed(-1) + */ + int http_message_header_next(const struct http_message *msg, struct http_header *header); + + /** + * @retval succeed( >= 0) failed(-1) + */ + int http_message_reset_header_iter(struct http_message *msg); + + void http_message_raw_body_get0(const struct http_message *msg, struct iovec *body); + + /** + * @brief If the body hasn't been compressed, same as http_message_raw_body_get0(). + * + */ + void http_message_decompress_body_get0(const struct http_message *msg, struct iovec *body); + + // raw + void http_message_raw_url_get0(const struct http_message *msg, struct iovec *url); + + void http_message_decoded_url_get0(const struct http_message *msg, struct iovec *url); + + /** + * @retval succeed( >= 0) failed(-1) + */ + int http_message_get_transaction_seq(const struct http_message *msg); #ifdef __cplusplus } |
