From 9b044eb495c07166ce27291cd1a5e7055ac5900a Mon Sep 17 00:00:00 2001 From: XieHan Date: Sun, 6 Mar 2022 15:58:16 +0800 Subject: [PATCH] add HttpMessage::is_header_complete() --- src/factory/HttpTaskImpl.cc | 10 ++++------ src/protocol/HttpMessage.h | 5 +++++ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/factory/HttpTaskImpl.cc b/src/factory/HttpTaskImpl.cc index ef16ec4f..d685a80c 100644 --- a/src/factory/HttpTaskImpl.cc +++ b/src/factory/HttpTaskImpl.cc @@ -342,13 +342,11 @@ void ComplexHttpTask::check_response() resp->end_parsing(); if (this->state == WFT_STATE_SYS_ERROR && this->error == ECONNRESET) { - const http_parser_t *parser = resp->get_parser(); - /* Servers can end the message by closing the connection. */ - if (http_parser_header_complete(parser) && - !http_parser_keep_alive(parser) && - !http_parser_chunked(parser) && - !http_parser_has_content_length(parser)) + if (resp->is_header_complete() && + !resp->is_keep_alive() && + !resp->is_chunked() && + !resp->has_content_length_header()) { this->state = WFT_STATE_SUCCESS; this->error = 0; diff --git a/src/protocol/HttpMessage.h b/src/protocol/HttpMessage.h index 07461b50..3709606c 100644 --- a/src/protocol/HttpMessage.h +++ b/src/protocol/HttpMessage.h @@ -93,6 +93,11 @@ public: this->parser) == 0; } + bool is_header_complete() const + { + return http_parser_header_complete(this->parser); + } + bool has_connection_header() const { return http_parser_has_connection(this->parser);