From 3211282b0c588fc7e4d0b2ad5e526eb7ee027212 Mon Sep 17 00:00:00 2001 From: winlin Date: Sun, 14 Jun 2015 19:42:43 +0800 Subject: [PATCH] refine the http code. --- trunk/src/app/srs_app_hls.cpp | 2 +- trunk/src/app/srs_app_http_conn.cpp | 18 ++++++++++-------- trunk/src/app/srs_app_http_conn.hpp | 10 ++++++---- trunk/src/app/srs_app_server.cpp | 2 +- 4 files changed, 18 insertions(+), 14 deletions(-) diff --git a/trunk/src/app/srs_app_hls.cpp b/trunk/src/app/srs_app_hls.cpp index 8ced69e82..54eb18566 100644 --- a/trunk/src/app/srs_app_hls.cpp +++ b/trunk/src/app/srs_app_hls.cpp @@ -752,7 +752,7 @@ int SrsHlsMuxer::segment_close(string log_desc) if (should_write_file) { unlink(tmp_file.c_str()); if (unlink(tmp_file.c_str()) < 0) { - srs_warn("drop unlink path failed, file=%s.", tmp_file.c_str()); + srs_warn("ignore unlink path failed, file=%s.", tmp_file.c_str()); } } diff --git a/trunk/src/app/srs_app_http_conn.cpp b/trunk/src/app/srs_app_http_conn.cpp index c992c5002..64e095be0 100644 --- a/trunk/src/app/srs_app_http_conn.cpp +++ b/trunk/src/app/srs_app_http_conn.cpp @@ -1204,25 +1204,27 @@ int SrsHttpConn::process_request(ISrsHttpResponseWriter* w, ISrsHttpMessage* r) return ret; } -SrsStaticHttpConn::SrsStaticHttpConn(IConnectionManager* cm, st_netfd_t fd, ISrsHttpServeMux* m) +SrsResponseOnlyHttpConn::SrsResponseOnlyHttpConn(IConnectionManager* cm, st_netfd_t fd, ISrsHttpServeMux* m) : SrsHttpConn(cm, fd, m) { } -SrsStaticHttpConn::~SrsStaticHttpConn() +SrsResponseOnlyHttpConn::~SrsResponseOnlyHttpConn() { } -int SrsStaticHttpConn::on_got_http_message(ISrsHttpMessage* msg) +int SrsResponseOnlyHttpConn::on_got_http_message(ISrsHttpMessage* msg) { int ret = ERROR_SUCCESS; - // TODO: FIXME: use the post body. - std::string res; + ISrsHttpResponseReader* br = msg->body_reader(); - // get response body. - if ((ret = msg->body_read_all(res)) != ERROR_SUCCESS) { - return ret; + // drop all request body. + while (!br->eof()) { + char body[4096]; + if ((ret = br->read(body, 4096, NULL)) != ERROR_SUCCESS) { + return ret; + } } return ret; diff --git a/trunk/src/app/srs_app_http_conn.hpp b/trunk/src/app/srs_app_http_conn.hpp index d27c30597..7bc06cd01 100644 --- a/trunk/src/app/srs_app_http_conn.hpp +++ b/trunk/src/app/srs_app_http_conn.hpp @@ -394,12 +394,14 @@ private: virtual int process_request(ISrsHttpResponseWriter* w, ISrsHttpMessage* r); }; -// TODO: FIXME: rename to SrsResponseOnlyHttpConn. -class SrsStaticHttpConn : public SrsHttpConn +/** + * drop body of request, only process the response. + */ +class SrsResponseOnlyHttpConn : public SrsHttpConn { public: - SrsStaticHttpConn(IConnectionManager* cm, st_netfd_t fd, ISrsHttpServeMux* m); - virtual ~SrsStaticHttpConn(); + SrsResponseOnlyHttpConn(IConnectionManager* cm, st_netfd_t fd, ISrsHttpServeMux* m); + virtual ~SrsResponseOnlyHttpConn(); public: virtual int on_got_http_message(ISrsHttpMessage* msg); }; diff --git a/trunk/src/app/srs_app_server.cpp b/trunk/src/app/srs_app_server.cpp index 806dbe011..0f2b3f960 100644 --- a/trunk/src/app/srs_app_server.cpp +++ b/trunk/src/app/srs_app_server.cpp @@ -1219,7 +1219,7 @@ int SrsServer::accept_client(SrsListenerType type, st_netfd_t client_stfd) #endif } else if (type == SrsListenerHttpStream) { #ifdef SRS_AUTO_HTTP_SERVER - conn = new SrsStaticHttpConn(this, client_stfd, http_server); + conn = new SrsResponseOnlyHttpConn(this, client_stfd, http_server); #else srs_warn("close http client for server not support http-server"); srs_close_stfd(client_stfd);