From 0ccbd7c40ac6ea1c70b7eb781ed09516ccb1ba1e Mon Sep 17 00:00:00 2001 From: winlin Date: Thu, 24 Dec 2020 18:49:56 +0800 Subject: [PATCH] Support get schema for HTTP message --- trunk/src/protocol/srs_service_http_conn.cpp | 10 +++++++++- trunk/src/protocol/srs_service_http_conn.hpp | 3 +++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/trunk/src/protocol/srs_service_http_conn.cpp b/trunk/src/protocol/srs_service_http_conn.cpp index 23a2591a0..d239972b2 100644 --- a/trunk/src/protocol/srs_service_http_conn.cpp +++ b/trunk/src/protocol/srs_service_http_conn.cpp @@ -325,6 +325,8 @@ SrsHttpMessage::SrsHttpMessage(ISrsReader* reader, SrsFastStream* buffer) : ISrs // From HTTP/1.1, default to keep alive. _keep_alive = true; type_ = 0; + + schema_ = "http"; } SrsHttpMessage::~SrsHttpMessage() @@ -416,7 +418,8 @@ srs_error_t SrsHttpMessage::set_url(string url, bool allow_jsonp) void SrsHttpMessage::set_https(bool v) { - _uri->set_schema(v? "https" : "http"); + schema_ = v? "https" : "http"; + _uri->set_schema(schema_); } ISrsConnection* SrsHttpMessage::connection() @@ -429,6 +432,11 @@ void SrsHttpMessage::set_connection(ISrsConnection* conn) owner_conn = conn; } +string SrsHttpMessage::schema() +{ + return schema_; +} + uint8_t SrsHttpMessage::method() { if (jsonp && !jsonp_method.empty()) { diff --git a/trunk/src/protocol/srs_service_http_conn.hpp b/trunk/src/protocol/srs_service_http_conn.hpp index fa048d4b4..0181f9294 100644 --- a/trunk/src/protocol/srs_service_http_conn.hpp +++ b/trunk/src/protocol/srs_service_http_conn.hpp @@ -120,6 +120,7 @@ private: // Whether the body is chunked. bool chunked; private: + std::string schema_; // The parsed url. std::string _url; // The extension of file, for example, .flv @@ -152,6 +153,8 @@ public: virtual ISrsConnection* connection(); virtual void set_connection(ISrsConnection* conn); public: + // The schema, http or https. + virtual std::string schema(); virtual uint8_t method(); virtual uint16_t status_code(); // The method helpers.