From 061d544195214af11f0427434adcdd328d3e33b4 Mon Sep 17 00:00:00 2001 From: Matheus Macabu Date: Tue, 19 Oct 2021 02:20:28 +0200 Subject: [PATCH] RTMP: If port is explicity set to 0, use default 1935 (#1754). v4.0.181 --- trunk/doc/CHANGELOG.md | 1 + trunk/src/core/srs_core_version4.hpp | 2 +- trunk/src/kernel/srs_kernel_utility.cpp | 4 ++-- trunk/src/utest/srs_utest_kernel.cpp | 8 ++++++++ 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/trunk/doc/CHANGELOG.md b/trunk/doc/CHANGELOG.md index bd72a493a..c2665d786 100644 --- a/trunk/doc/CHANGELOG.md +++ b/trunk/doc/CHANGELOG.md @@ -8,6 +8,7 @@ The changelog for SRS. ## SRS 4.0 Changelog +* v4.0, 2021-10-19, Merge [#1754](https://github.com/ossrs/srs/pull/1754): RTMP: If port is explicity set to 0, use default 1935. v4.0.181 * v4.0, 2021-10-18, Merge [#2670](https://github.com/ossrs/srs/pull/2670): SRT: Solve mpegts demux assert bug. v4.0.180 * v4.0, 2021-10-16, Merge [#2665](https://github.com/ossrs/srs/pull/2665): API: Fix the same 'client_id' error when asynchronous call. v4.0.179 * v4.0, 2021-10-13, Merge [#2671](https://github.com/ossrs/srs/pull/2671): SRT: Pes error when mpegts demux in srt. v4.0.178 diff --git a/trunk/src/core/srs_core_version4.hpp b/trunk/src/core/srs_core_version4.hpp index 61bdbb927..541d651f9 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 180 +#define VERSION_REVISION 181 #endif diff --git a/trunk/src/kernel/srs_kernel_utility.cpp b/trunk/src/kernel/srs_kernel_utility.cpp index 7e783382b..8d59cbc9d 100644 --- a/trunk/src/kernel/srs_kernel_utility.cpp +++ b/trunk/src/kernel/srs_kernel_utility.cpp @@ -189,7 +189,7 @@ void srs_parse_hostport(string hostport, string& host, int& port) if (hostport.find(":") == pos) { host = hostport.substr(0, pos); string p = hostport.substr(pos + 1); - if (!p.empty()) { + if (!p.empty() && p != "0") { port = ::atoi(p.c_str()); } return; @@ -204,7 +204,7 @@ void srs_parse_hostport(string hostport, string& host, int& port) // For ipv6, [host]:port. host = hostport.substr(1, pos - 1); string p = hostport.substr(pos + 2); - if (!p.empty()) { + if (!p.empty() && p != "0") { port = ::atoi(p.c_str()); } } diff --git a/trunk/src/utest/srs_utest_kernel.cpp b/trunk/src/utest/srs_utest_kernel.cpp index 872c98641..37ee0aa98 100644 --- a/trunk/src/utest/srs_utest_kernel.cpp +++ b/trunk/src/utest/srs_utest_kernel.cpp @@ -4570,6 +4570,14 @@ VOID TEST(KernelUtilityTest, CoverTimeUtilityAll) srs_parse_hostport("domain.com", host, port); EXPECT_STREQ("domain.com", host.c_str()); } + + if (true) { + string host; + int port = 1935; + srs_parse_hostport("domain.com:0", host, port); + EXPECT_EQ(1935, port); + EXPECT_STREQ("domain.com", host.c_str()); + } if (true) { string ep = srs_any_address_for_listener();