mirror of
https://github.com/ossrs/srs.git
synced 2025-03-09 15:49:59 +00:00
Fix #1059, support vhost in stream parameters. 2.0.246
This commit is contained in:
parent
366309ce2d
commit
1721e4ea4b
13 changed files with 161 additions and 69 deletions
|
@ -461,40 +461,123 @@ VOID TEST(ProtocolUtilityTest, VhostResolve)
|
|||
*/
|
||||
VOID TEST(ProtocolUtilityTest, DiscoveryTcUrl)
|
||||
{
|
||||
std::string tcUrl;
|
||||
std::string schema; std::string host; std::string vhost;
|
||||
std::string app; std::string port; std::string param;
|
||||
std::string tcUrl, schema, ip, vhost, app, stream, port, param;
|
||||
|
||||
tcUrl = "rtmp://127.0.0.1:1935/live";
|
||||
srs_discovery_tc_url(tcUrl, schema, host, vhost, app, port, param);
|
||||
// general url
|
||||
tcUrl = "rtmp://winlin.cn/live"; stream= "show";
|
||||
srs_discovery_tc_url(tcUrl, schema, ip, vhost, app, stream, port, param);
|
||||
EXPECT_STREQ("rtmp", schema.c_str());
|
||||
EXPECT_STREQ("127.0.0.1", host.c_str());
|
||||
EXPECT_STREQ("127.0.0.1", vhost.c_str());
|
||||
EXPECT_STREQ("winlin.cn", ip.c_str());
|
||||
EXPECT_STREQ("winlin.cn", vhost.c_str());
|
||||
EXPECT_STREQ("live", app.c_str());
|
||||
EXPECT_STREQ("show", stream.c_str());
|
||||
EXPECT_STREQ("1935", port.c_str());
|
||||
|
||||
tcUrl = "rtmp://127.0.0.1:19351/live";
|
||||
srs_discovery_tc_url(tcUrl, schema, host, vhost, app, port, param);
|
||||
tcUrl = "rtmp://winlin.cn:19351/live"; stream= "show";
|
||||
srs_discovery_tc_url(tcUrl, schema, ip, vhost, app, stream, port, param);
|
||||
EXPECT_STREQ("rtmp", schema.c_str());
|
||||
EXPECT_STREQ("127.0.0.1", host.c_str());
|
||||
EXPECT_STREQ("winlin.cn", ip.c_str());
|
||||
EXPECT_STREQ("winlin.cn", vhost.c_str());
|
||||
EXPECT_STREQ("live", app.c_str());
|
||||
EXPECT_STREQ("show", stream.c_str());
|
||||
EXPECT_STREQ("19351", port.c_str());
|
||||
|
||||
tcUrl = "rtmp://winlin.cn/live"; stream= "show?key=abc";
|
||||
srs_discovery_tc_url(tcUrl, schema, ip, vhost, app, stream, port, param);
|
||||
EXPECT_STREQ("rtmp", schema.c_str());
|
||||
EXPECT_STREQ("winlin.cn", ip.c_str());
|
||||
EXPECT_STREQ("winlin.cn", vhost.c_str());
|
||||
EXPECT_STREQ("live", app.c_str());
|
||||
EXPECT_STREQ("show", stream.c_str());
|
||||
EXPECT_STREQ("1935", port.c_str());
|
||||
EXPECT_STREQ("?key=abc", param.c_str());
|
||||
|
||||
tcUrl = "rtmp://winlin.cn/live"; stream= "show?key=abc&&vhost=demo.com";
|
||||
srs_discovery_tc_url(tcUrl, schema, ip, vhost, app, stream, port, param);
|
||||
EXPECT_STREQ("rtmp", schema.c_str());
|
||||
EXPECT_STREQ("winlin.cn", ip.c_str());
|
||||
EXPECT_STREQ("demo.com", vhost.c_str());
|
||||
EXPECT_STREQ("live", app.c_str());
|
||||
EXPECT_STREQ("show", stream.c_str());
|
||||
EXPECT_STREQ("1935", port.c_str());
|
||||
EXPECT_STREQ("?key=abc&&vhost=demo.com", param.c_str());
|
||||
|
||||
// vhost in app
|
||||
tcUrl = "rtmp://winlin.cn/live?key=abc"; stream= "show";
|
||||
srs_discovery_tc_url(tcUrl, schema, ip, vhost, app, stream, port, param);
|
||||
EXPECT_STREQ("rtmp", schema.c_str());
|
||||
EXPECT_STREQ("winlin.cn", ip.c_str());
|
||||
EXPECT_STREQ("winlin.cn", vhost.c_str());
|
||||
EXPECT_STREQ("live", app.c_str());
|
||||
EXPECT_STREQ("show", stream.c_str());
|
||||
EXPECT_STREQ("1935", port.c_str());
|
||||
EXPECT_STREQ("?key=abc", param.c_str());
|
||||
|
||||
tcUrl = "rtmp://winlin.cn/live?key=abc&&vhost=demo.com"; stream= "show";
|
||||
srs_discovery_tc_url(tcUrl, schema, ip, vhost, app, stream, port, param);
|
||||
EXPECT_STREQ("rtmp", schema.c_str());
|
||||
EXPECT_STREQ("winlin.cn", ip.c_str());
|
||||
EXPECT_STREQ("demo.com", vhost.c_str());
|
||||
EXPECT_STREQ("live", app.c_str());
|
||||
EXPECT_STREQ("show", stream.c_str());
|
||||
EXPECT_STREQ("1935", port.c_str());
|
||||
EXPECT_STREQ("?key=abc&&vhost=demo.com", param.c_str());
|
||||
|
||||
// without stream
|
||||
tcUrl = "rtmp://winlin.cn/live"; stream="";
|
||||
srs_discovery_tc_url(tcUrl, schema, ip, vhost, app, stream, port, param);
|
||||
EXPECT_STREQ("rtmp", schema.c_str());
|
||||
EXPECT_STREQ("winlin.cn", ip.c_str());
|
||||
EXPECT_STREQ("winlin.cn", vhost.c_str());
|
||||
EXPECT_STREQ("live", app.c_str());
|
||||
EXPECT_STREQ("", stream.c_str());
|
||||
EXPECT_STREQ("1935", port.c_str());
|
||||
|
||||
tcUrl = "rtmp://127.0.0.1:1935/live"; stream="";
|
||||
srs_discovery_tc_url(tcUrl, schema, ip, vhost, app, stream, port, param);
|
||||
EXPECT_STREQ("rtmp", schema.c_str());
|
||||
EXPECT_STREQ("127.0.0.1", ip.c_str());
|
||||
EXPECT_STREQ("127.0.0.1", vhost.c_str());
|
||||
EXPECT_STREQ("live", app.c_str());
|
||||
EXPECT_STREQ("", stream.c_str());
|
||||
EXPECT_STREQ("1935", port.c_str());
|
||||
|
||||
tcUrl = "rtmp://127.0.0.1:19351/live"; stream="";
|
||||
srs_discovery_tc_url(tcUrl, schema, ip, vhost, app, stream, port, param);
|
||||
EXPECT_STREQ("rtmp", schema.c_str());
|
||||
EXPECT_STREQ("127.0.0.1", ip.c_str());
|
||||
EXPECT_STREQ("127.0.0.1", vhost.c_str());
|
||||
EXPECT_STREQ("live", app.c_str());
|
||||
EXPECT_STREQ("", stream.c_str());
|
||||
EXPECT_STREQ("19351", port.c_str());
|
||||
|
||||
tcUrl = "rtmp://127.0.0.1:19351/live?vhost=demo";
|
||||
srs_discovery_tc_url(tcUrl, schema, host, vhost, app, port, param);
|
||||
tcUrl = "rtmp://127.0.0.1:19351/live?vhost=demo"; stream="";
|
||||
srs_discovery_tc_url(tcUrl, schema, ip, vhost, app, stream, port, param);
|
||||
EXPECT_STREQ("rtmp", schema.c_str());
|
||||
EXPECT_STREQ("127.0.0.1", host.c_str());
|
||||
EXPECT_STREQ("127.0.0.1", ip.c_str());
|
||||
EXPECT_STREQ("demo", vhost.c_str());
|
||||
EXPECT_STREQ("live", app.c_str());
|
||||
EXPECT_STREQ("", stream.c_str());
|
||||
EXPECT_STREQ("19351", port.c_str());
|
||||
|
||||
tcUrl = "rtmp://127.0.0.1:19351/live/show?vhost=demo";
|
||||
srs_discovery_tc_url(tcUrl, schema, host, vhost, app, port, param);
|
||||
// no vhost
|
||||
tcUrl = "rtmp://127.0.0.1:19351/live"; stream= "show";
|
||||
srs_discovery_tc_url(tcUrl, schema, ip, vhost, app, stream, port, param);
|
||||
EXPECT_STREQ("rtmp", schema.c_str());
|
||||
EXPECT_STREQ("127.0.0.1", host.c_str());
|
||||
EXPECT_STREQ("127.0.0.1", ip.c_str());
|
||||
EXPECT_STREQ("127.0.0.1", vhost.c_str());
|
||||
EXPECT_STREQ("live", app.c_str());
|
||||
EXPECT_STREQ("show", stream.c_str());
|
||||
EXPECT_STREQ("19351", port.c_str());
|
||||
|
||||
// ip and vhost
|
||||
tcUrl = "rtmp://127.0.0.1:19351/live"; stream= "show?vhost=demo";
|
||||
srs_discovery_tc_url(tcUrl, schema, ip, vhost, app, stream, port, param);
|
||||
EXPECT_STREQ("rtmp", schema.c_str());
|
||||
EXPECT_STREQ("127.0.0.1", ip.c_str());
|
||||
EXPECT_STREQ("demo", vhost.c_str());
|
||||
EXPECT_STREQ("live/show", app.c_str());
|
||||
EXPECT_STREQ("live", app.c_str());
|
||||
EXPECT_STREQ("show", stream.c_str());
|
||||
EXPECT_STREQ("19351", port.c_str());
|
||||
}
|
||||
|
||||
|
@ -5405,7 +5488,7 @@ VOID TEST(ProtocolRTMPTest, RTMPRequest)
|
|||
|
||||
req.stream = "livestream";
|
||||
srs_discovery_tc_url("rtmp://std.ossrs.net/live",
|
||||
req.schema, req.host, req.vhost, req.app, req.port, param);
|
||||
req.schema, req.host, req.vhost, req.app, req.stream, req.port, param);
|
||||
req.strip();
|
||||
EXPECT_STREQ("rtmp", req.schema.c_str());
|
||||
EXPECT_STREQ("std.ossrs.net", req.host.c_str());
|
||||
|
@ -5415,7 +5498,7 @@ VOID TEST(ProtocolRTMPTest, RTMPRequest)
|
|||
|
||||
req.stream = "livestream";
|
||||
srs_discovery_tc_url("rtmp://s td.os srs.n et/li v e",
|
||||
req.schema, req.host, req.vhost, req.app, req.port, param);
|
||||
req.schema, req.host, req.vhost, req.app, req.stream, req.port, param);
|
||||
req.strip();
|
||||
EXPECT_STREQ("rtmp", req.schema.c_str());
|
||||
EXPECT_STREQ("std.ossrs.net", req.host.c_str());
|
||||
|
@ -5425,7 +5508,7 @@ VOID TEST(ProtocolRTMPTest, RTMPRequest)
|
|||
|
||||
req.stream = "livestream";
|
||||
srs_discovery_tc_url("rtmp://s\ntd.o\rssrs.ne\nt/li\nve",
|
||||
req.schema, req.host, req.vhost, req.app, req.port, param);
|
||||
req.schema, req.host, req.vhost, req.app, req.stream, req.port, param);
|
||||
req.strip();
|
||||
EXPECT_STREQ("rtmp", req.schema.c_str());
|
||||
EXPECT_STREQ("std.ossrs.net", req.host.c_str());
|
||||
|
@ -5435,7 +5518,7 @@ VOID TEST(ProtocolRTMPTest, RTMPRequest)
|
|||
|
||||
req.stream = "livestream";
|
||||
srs_discovery_tc_url("rtmp://std.ossrs.net/live ",
|
||||
req.schema, req.host, req.vhost, req.app, req.port, param);
|
||||
req.schema, req.host, req.vhost, req.app, req.stream, req.port, param);
|
||||
req.strip();
|
||||
EXPECT_STREQ("rtmp", req.schema.c_str());
|
||||
EXPECT_STREQ("std.ossrs.net", req.host.c_str());
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue