初步调通HTTP重定向业务

* 增加HTTP Status标准化定义及辅助函数;
* 增加HTTP解析层发送应答的功能
* 修正了Pangu HTTP实现导致段错误的一系列问题。
This commit is contained in:
Lu Qiuwen
2018-09-25 10:17:50 +08:00
parent 0776cb3ec8
commit c2f0bde211
9 changed files with 350 additions and 82 deletions

View File

@@ -50,22 +50,28 @@ struct http_half_private
short major;
short minor;
/* URI */
struct evbuffer * evbuf_uri;
char * url_storage;
/* Header Parser */
struct evbuffer * evbuf_header_field;
struct evbuffer * evbuf_header_value;
bool is_evbuf_header_field_set;
bool is_evbuf_header_value_set;
struct evbuffer * evbuf_body;
/* Status */
enum hf_private_status body_status;
enum hf_private_status message_status;
/* default stream action */
enum tfe_stream_action stream_action;
enum tfe_stream_action user_stream_action;
/* Setup by User */
bool is_setup_by_user;
struct evbuffer * evbuf_body;
struct evbuffer * evbuf_raw;
};
struct http_half_private * hf_private_create(tfe_http_direction ht_dir, short major, short minor);
@@ -85,6 +91,7 @@ void hf_private_destory(struct http_half_private * hf_private);
* -1 for error.
*/
int hf_private_parse(struct http_half_private * hf_private, const unsigned char * data, size_t len);
void hf_private_construct(struct http_half_private * hf_private);
void hf_private_set_callback(struct http_half_private * hf_private, hf_private_cb * cb,
void * user, void (* fn_user_deleter)(void *));
@@ -96,6 +103,8 @@ struct http_session_private * hs_private_create(struct http_connection_private *
void hs_private_destory(struct http_session_private * hs_private);
void hs_private_hf_private_set(struct http_session_private * hs_private,
struct http_half_private * hf, enum tfe_http_direction);