From 36cbe851ca14dd2f74523581d15e5904ea9457b4 Mon Sep 17 00:00:00 2001 From: winlin Date: Sat, 14 Aug 2021 14:37:05 +0800 Subject: [PATCH 1/2] RTC: Fix reousrce find bug --- trunk/src/app/srs_app_conn.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/trunk/src/app/srs_app_conn.cpp b/trunk/src/app/srs_app_conn.cpp index b834a578d..7a1d598a8 100644 --- a/trunk/src/app/srs_app_conn.cpp +++ b/trunk/src/app/srs_app_conn.cpp @@ -115,7 +115,7 @@ void SrsResourceManager::add(ISrsResource* conn, bool* exists) conns_.push_back(conn); } else { if (exists) { - *exists = false; + *exists = true; } } } From 7c1d3edd36f4d3324c2e36d90aa45e1820c6a8d0 Mon Sep 17 00:00:00 2001 From: Johnny Date: Sat, 14 Aug 2021 12:14:56 +0800 Subject: [PATCH 2/2] RTC: fix SrsSessionInfo about copy assignment operator and comparison operator. --- CHANGELOG.md | 1 + trunk/src/app/srs_app_rtc_sdp.cpp | 12 +++++++++++- trunk/src/app/srs_app_rtc_sdp.hpp | 4 +++- trunk/src/core/srs_core_version4.hpp | 2 +- 4 files changed, 16 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bfd05672c..973b1fedc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ The changelog for SRS. ## SRS 4.0 Changelog +* v4.0, 2021-08-14, RTC: Merge [#2533](https://github.com/ossrs/srs/pull/2533), fix SDP comparison bug. 4.0.154 * v4.0, 2021-08-13, RTC: Merge [#2526](https://github.com/ossrs/srs/pull/2526), fix codec issue for G.711 or H.263. 4.0.152 * v4.0, 2021-08-10, RTC: Merge [#2509](https://github.com/ossrs/srs/pull/2514), support http hooks n_play/stop/publish/unpublish. 4.0.151 * v4.0, 2021-08-07, Merge [#2514](https://github.com/ossrs/srs/pull/2514), Get original client ip instead of proxy ip, for rtc api #2514. 4.0.150 diff --git a/trunk/src/app/srs_app_rtc_sdp.cpp b/trunk/src/app/srs_app_rtc_sdp.cpp index e9e549393..fbaa70111 100644 --- a/trunk/src/app/srs_app_rtc_sdp.cpp +++ b/trunk/src/app/srs_app_rtc_sdp.cpp @@ -145,7 +145,7 @@ srs_error_t SrsSessionInfo::encode(std::ostringstream& os) return err; } -bool SrsSessionInfo::operator=(const SrsSessionInfo& rhs) +bool SrsSessionInfo::operator==(const SrsSessionInfo& rhs) { return ice_ufrag_ == rhs.ice_ufrag_ && ice_pwd_ == rhs.ice_pwd_ && @@ -155,6 +155,16 @@ bool SrsSessionInfo::operator=(const SrsSessionInfo& rhs) setup_ == rhs.setup_; } +SrsSessionInfo &SrsSessionInfo::operator=(SrsSessionInfo other) { + std::swap(ice_ufrag_, other.ice_ufrag_); + std::swap(ice_pwd_, other.ice_pwd_); + std::swap(ice_options_, other.ice_options_); + std::swap(fingerprint_algo_, other.fingerprint_algo_); + std::swap(fingerprint_, other.fingerprint_); + std::swap(setup_, other.setup_); + return *this; +} + SrsSSRCInfo::SrsSSRCInfo() { ssrc_ = 0; diff --git a/trunk/src/app/srs_app_rtc_sdp.hpp b/trunk/src/app/srs_app_rtc_sdp.hpp index 4484bfdc8..52cff2656 100644 --- a/trunk/src/app/srs_app_rtc_sdp.hpp +++ b/trunk/src/app/srs_app_rtc_sdp.hpp @@ -36,7 +36,9 @@ public: srs_error_t parse_attribute(const std::string& attribute, const std::string& value); srs_error_t encode(std::ostringstream& os); - bool operator=(const SrsSessionInfo& rhs); + bool operator==(const SrsSessionInfo& rhs); + // user-defined copy assignment (copy-and-swap idiom) + SrsSessionInfo& operator=(SrsSessionInfo other); public: std::string ice_ufrag_; std::string ice_pwd_; diff --git a/trunk/src/core/srs_core_version4.hpp b/trunk/src/core/srs_core_version4.hpp index a68ea7de4..f55277c86 100644 --- a/trunk/src/core/srs_core_version4.hpp +++ b/trunk/src/core/srs_core_version4.hpp @@ -9,6 +9,6 @@ #define VERSION_MAJOR 4 #define VERSION_MINOR 0 -#define VERSION_REVISION 153 +#define VERSION_REVISION 154 #endif