summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorlijia <[email protected]>2024-05-24 22:47:32 +0800
committerlijia <[email protected]>2024-06-03 11:08:06 +0800
commit1c232f0176c43c93c3e787ac83f3573bf42c58f1 (patch)
tree734c31a97ec38847972b70a18ec075fd415bb5f6 /include
parent22d071e23ff423242f51dce2eab1477b5fb9d106 (diff)
Adapt to stellar2.0;update API,add HDR_END,BODY_END,TRANSACTION_NEW,FREE msg.v2.0.2
Diffstat (limited to 'include')
-rw-r--r--include/http_decoder.h78
1 files changed, 34 insertions, 44 deletions
diff --git a/include/http_decoder.h b/include/http_decoder.h
index 56c107a..449d498 100644
--- a/include/http_decoder.h
+++ b/include/http_decoder.h
@@ -1,13 +1,3 @@
-/*
-**********************************************************************************************
-* File: http_decoder.h
-* Description:
-* Authors: Liu WenTan <[email protected]>
-* Date: 2024-01-10
-* Copyright: (c) Since 2022 Geedge Networks, Ltd. All rights reserved.
-***********************************************************************************************
-*/
-
#ifndef _HTTP_DECODER_H_
#define _HTTP_DECODER_H_
@@ -16,19 +6,25 @@ extern "C"
{
#endif
-#include <stddef.h>
-
enum http_message_type {
- HTTP_MESSAGE_REQ_LINE,
+ HTTP_MESSAGE_REQ_LINE,
HTTP_MESSAGE_REQ_HEADER,
+ HTTP_MESSAGE_REQ_HEADER_END,
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,
+ HTTP_MESSAGE_RES_BODY_END,
+
+ HTTP_TRANSACTION_NEW,
+ HTTP_TRANSACTION_FREE,
+
HTTP_MESSAGE_MAX
};
-//http string
struct hstring {
char *str;
size_t str_len;
@@ -43,7 +39,6 @@ struct http_request_line {
struct hstring method;
struct hstring uri;
struct hstring version;
-
int major_version;
int minor_version;
};
@@ -51,64 +46,59 @@ struct http_request_line {
struct http_response_line {
struct hstring version;
struct hstring status;
-
int major_version;
int minor_version;
int status_code;
};
struct http_message;
+#define HTTP_DECODER_TOPIC "HTTP_DECODER_MESSAGE"
-enum http_message_type http_message_type(struct http_message *msg);
+enum http_message_type http_message_type_get(const struct http_message *msg);
-/**
- * @retval succeed(0) failed(-1)
-*/
-int http_message_get_request_line(struct http_message *msg,
- struct http_request_line *line);
+void http_message_get_request_line(const struct http_message *msg,
+ struct http_request_line *line);
-int http_message_get_response_line(struct http_message *msg,
- struct http_response_line *line);
+void http_message_get_response_line(const struct http_message *msg,
+ struct http_response_line *line);
/*
-* @retval succeed(0) failed(-1)
+* Pay attention: key->str is case-insensitive.
*/
-int http_message_get_header(struct http_message *msg, struct hstring *key,
- struct http_header *hdr_result);
+void http_message_get_header(const struct http_message *msg,
+ const struct hstring *key,
+ struct http_header *hdr_result);
/**
- * @brief loop reading all headers
+ * @brief loop reading all headers.
*
- * @retval succeed(0) failed(<= 0)
+ * @retval succeed( >= 0) failed(-1)
*/
-int http_message_header_next(struct http_message *msg,
+int http_message_header_next(const struct http_message *msg,
struct http_header *header);
-int http_message_reset_header_iter(struct http_message *msg);
-
/**
- * @retval succeed(0) failed(-1)
+ * @retval succeed( >= 0) failed(-1)
*/
-int http_message_get_raw_body(struct http_message *msg,
- struct hstring *body);
+int http_message_reset_header_iter(struct http_message *msg);
+
+void http_message_get_raw_body(const struct http_message *msg,
+ struct hstring *body);
/**
- * @brief If the body hasn't been compressed, return raw body
+ * @brief If the body hasn't been compressed, same as http_message_get_raw_body().
*
- * @retval succeed(0) failed(-1)
*/
-int http_message_get_decompress_body(struct http_message *msg,
- struct hstring *body);
+void http_message_get_decompress_body(const struct http_message *msg,
+ struct hstring *body);
-/**
- * @retval succeed(0) failed(-1)
-*/
-int http_message_get_url(struct http_message *msg, struct hstring *url);
+void http_message_get_url(const struct http_message *msg,
+ struct hstring *url);
/**
* @retval succeed( >= 0) failed(-1)
*/
-int http_message_get_transaction_seq(struct http_message *msg);
+int http_message_get_transaction_seq(const struct http_message *msg);
#ifdef __cplusplus
}