fix #160, support forward/edge to flussonic, disable debug_srs_upnode to make fl…
…ussonic happy. 0.9.201.
正在显示
14 个修改的文件
包含
207 行增加
和
36 行删除
README.md
100644 → 100755
| @@ -208,6 +208,7 @@ Supported operating systems and hardware: | @@ -208,6 +208,7 @@ Supported operating systems and hardware: | ||
| 208 | * 2013-10-17, Created.<br/> | 208 | * 2013-10-17, Created.<br/> |
| 209 | 209 | ||
| 210 | ## History | 210 | ## History |
| 211 | +* v1.0, 2014-08-19, for [#160](https://github.com/winlinvip/simple-rtmp-server/issues/160), support forward/edge to flussonic, disable debug_srs_upnode to make flussonic happy. 0.9.201. | ||
| 211 | * v1.0, 2014-08-17, for [#155](https://github.com/winlinvip/simple-rtmp-server/issues/155), refine for osx, with ssl/http, disable statistics. 0.9.198. | 212 | * v1.0, 2014-08-17, for [#155](https://github.com/winlinvip/simple-rtmp-server/issues/155), refine for osx, with ssl/http, disable statistics. 0.9.198. |
| 212 | * v1.0, 2014-08-06, fix [#148](https://github.com/winlinvip/simple-rtmp-server/issues/148), simplify the RTMP handshake key generation. 0.9.191. | 213 | * v1.0, 2014-08-06, fix [#148](https://github.com/winlinvip/simple-rtmp-server/issues/148), simplify the RTMP handshake key generation. 0.9.191. |
| 213 | * v1.0, 2014-08-06, fix [#147](https://github.com/winlinvip/simple-rtmp-server/issues/147), support identify the srs edge. 0.9.190. | 214 | * v1.0, 2014-08-06, fix [#147](https://github.com/winlinvip/simple-rtmp-server/issues/147), support identify the srs edge. 0.9.190. |
| @@ -405,6 +405,17 @@ vhost hooks.callback.srs.com { | @@ -405,6 +405,17 @@ vhost hooks.callback.srs.com { | ||
| 405 | } | 405 | } |
| 406 | } | 406 | } |
| 407 | 407 | ||
| 408 | +# the vhost for srs debug info, whether send args in connect(tcUrl). | ||
| 409 | +vhost debug.srs.com { | ||
| 410 | + # when upnode(forward to, edge push to, edge pull from) is srs, | ||
| 411 | + # it's strongly recommend to open the debug_srs_upnode, | ||
| 412 | + # when connect to upnode, it will take the debug info, | ||
| 413 | + # for example, the id, source id, pid. | ||
| 414 | + # please see: https://github.com/winlinvip/simple-rtmp-server/wiki/SrsLog | ||
| 415 | + # default: on | ||
| 416 | + debug_srs_upnode on; | ||
| 417 | +} | ||
| 418 | + | ||
| 408 | # the vhost for min delay, donot cache any stream. | 419 | # the vhost for min delay, donot cache any stream. |
| 409 | vhost min.delay.com { | 420 | vhost min.delay.com { |
| 410 | # whether cache the last gop. | 421 | # whether cache the last gop. |
| @@ -436,7 +436,7 @@ int SrsConfig::reload_conf(SrsConfig* conf) | @@ -436,7 +436,7 @@ int SrsConfig::reload_conf(SrsConfig* conf) | ||
| 436 | // always support reload without additional code: | 436 | // always support reload without additional code: |
| 437 | // chunk_size, ff_log_dir, max_connections, | 437 | // chunk_size, ff_log_dir, max_connections, |
| 438 | // bandcheck, http_hooks, heartbeat, | 438 | // bandcheck, http_hooks, heartbeat, |
| 439 | - // token_traverse | 439 | + // token_traverse, debug_srs_upnode |
| 440 | 440 | ||
| 441 | // merge config: listen | 441 | // merge config: listen |
| 442 | if (!srs_directive_equals(root->get("listen"), old_root->get("listen"))) { | 442 | if (!srs_directive_equals(root->get("listen"), old_root->get("listen"))) { |
| @@ -1285,6 +1285,7 @@ int SrsConfig::check_config() | @@ -1285,6 +1285,7 @@ int SrsConfig::check_config() | ||
| 1285 | && n != "forward" && n != "transcode" && n != "bandcheck" | 1285 | && n != "forward" && n != "transcode" && n != "bandcheck" |
| 1286 | && n != "time_jitter" | 1286 | && n != "time_jitter" |
| 1287 | && n != "atc" && n != "atc_auto" | 1287 | && n != "atc" && n != "atc_auto" |
| 1288 | + && n != "debug_srs_upnode" | ||
| 1288 | ) { | 1289 | ) { |
| 1289 | ret = ERROR_SYSTEM_CONFIG_INVALID; | 1290 | ret = ERROR_SYSTEM_CONFIG_INVALID; |
| 1290 | srs_error("unsupported vhost directive %s, ret=%d", n.c_str(), ret); | 1291 | srs_error("unsupported vhost directive %s, ret=%d", n.c_str(), ret); |
| @@ -1885,6 +1886,22 @@ bool SrsConfig::get_gop_cache(string vhost) | @@ -1885,6 +1886,22 @@ bool SrsConfig::get_gop_cache(string vhost) | ||
| 1885 | return true; | 1886 | return true; |
| 1886 | } | 1887 | } |
| 1887 | 1888 | ||
| 1889 | +bool SrsConfig::get_debug_srs_upnode(string vhost) | ||
| 1890 | +{ | ||
| 1891 | + SrsConfDirective* conf = get_vhost(vhost); | ||
| 1892 | + | ||
| 1893 | + if (!conf) { | ||
| 1894 | + return true; | ||
| 1895 | + } | ||
| 1896 | + | ||
| 1897 | + conf = conf->get("debug_srs_upnode"); | ||
| 1898 | + if (conf && conf->arg0() == "off") { | ||
| 1899 | + return false; | ||
| 1900 | + } | ||
| 1901 | + | ||
| 1902 | + return true; | ||
| 1903 | +} | ||
| 1904 | + | ||
| 1888 | bool SrsConfig::get_atc(string vhost) | 1905 | bool SrsConfig::get_atc(string vhost) |
| 1889 | { | 1906 | { |
| 1890 | SrsConfDirective* conf = get_vhost(vhost); | 1907 | SrsConfDirective* conf = get_vhost(vhost); |
| @@ -467,6 +467,15 @@ public: | @@ -467,6 +467,15 @@ public: | ||
| 467 | */ | 467 | */ |
| 468 | virtual bool get_gop_cache(std::string vhost); | 468 | virtual bool get_gop_cache(std::string vhost); |
| 469 | /** | 469 | /** |
| 470 | + * whether debug_srs_upnode is enabled of vhost. | ||
| 471 | + * debug_srs_upnode is very important feature for tracable log, | ||
| 472 | + * but some server, for instance, flussonic donot support it. | ||
| 473 | + * @see https://github.com/winlinvip/simple-rtmp-server/issues/160 | ||
| 474 | + * @return true when debug_srs_upnode is ok; otherwise, false. | ||
| 475 | + * @remark, default true. | ||
| 476 | + */ | ||
| 477 | + virtual bool get_debug_srs_upnode(std::string vhost); | ||
| 478 | + /** | ||
| 470 | * whether atc is enabled of vhost. | 479 | * whether atc is enabled of vhost. |
| 471 | * atc always use encoder timestamp, SRS never adjust the time. | 480 | * atc always use encoder timestamp, SRS never adjust the time. |
| 472 | * @return true when atc is ok; otherwise, false. | 481 | * @return true when atc is ok; otherwise, false. |
| @@ -28,6 +28,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | @@ -28,6 +28,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 28 | #include <netinet/in.h> | 28 | #include <netinet/in.h> |
| 29 | #include <arpa/inet.h> | 29 | #include <arpa/inet.h> |
| 30 | 30 | ||
| 31 | +using namespace std; | ||
| 32 | + | ||
| 31 | #include <srs_kernel_error.hpp> | 33 | #include <srs_kernel_error.hpp> |
| 32 | #include <srs_protocol_rtmp.hpp> | 34 | #include <srs_protocol_rtmp.hpp> |
| 33 | #include <srs_kernel_log.hpp> | 35 | #include <srs_kernel_log.hpp> |
| @@ -118,7 +120,8 @@ int SrsEdgeIngester::cycle() | @@ -118,7 +120,8 @@ int SrsEdgeIngester::cycle() | ||
| 118 | { | 120 | { |
| 119 | int ret = ERROR_SUCCESS; | 121 | int ret = ERROR_SUCCESS; |
| 120 | 122 | ||
| 121 | - if ((ret = connect_server()) != ERROR_SUCCESS) { | 123 | + std::string ep_server, ep_port; |
| 124 | + if ((ret = connect_server(ep_server, ep_port)) != ERROR_SUCCESS) { | ||
| 122 | return ret; | 125 | return ret; |
| 123 | } | 126 | } |
| 124 | srs_assert(client); | 127 | srs_assert(client); |
| @@ -132,7 +135,7 @@ int SrsEdgeIngester::cycle() | @@ -132,7 +135,7 @@ int SrsEdgeIngester::cycle() | ||
| 132 | srs_error("handshake with server failed. ret=%d", ret); | 135 | srs_error("handshake with server failed. ret=%d", ret); |
| 133 | return ret; | 136 | return ret; |
| 134 | } | 137 | } |
| 135 | - if ((ret = connect_app()) != ERROR_SUCCESS) { | 138 | + if ((ret = connect_app(ep_server, ep_port)) != ERROR_SUCCESS) { |
| 136 | return ret; | 139 | return ret; |
| 137 | } | 140 | } |
| 138 | if ((ret = client->create_stream(stream_id)) != ERROR_SUCCESS) { | 141 | if ((ret = client->create_stream(stream_id)) != ERROR_SUCCESS) { |
| @@ -209,7 +212,7 @@ int SrsEdgeIngester::ingest() | @@ -209,7 +212,7 @@ int SrsEdgeIngester::ingest() | ||
| 209 | return ret; | 212 | return ret; |
| 210 | } | 213 | } |
| 211 | 214 | ||
| 212 | -int SrsEdgeIngester::connect_app() | 215 | +int SrsEdgeIngester::connect_app(string ep_server, string ep_port) |
| 213 | { | 216 | { |
| 214 | int ret = ERROR_SUCCESS; | 217 | int ret = ERROR_SUCCESS; |
| 215 | 218 | ||
| @@ -243,9 +246,16 @@ int SrsEdgeIngester::connect_app() | @@ -243,9 +246,16 @@ int SrsEdgeIngester::connect_app() | ||
| 243 | std::string local_ip = ips[_srs_config->get_stats_network()]; | 246 | std::string local_ip = ips[_srs_config->get_stats_network()]; |
| 244 | data->set("srs_server_ip", SrsAmf0Any::str(local_ip.c_str())); | 247 | data->set("srs_server_ip", SrsAmf0Any::str(local_ip.c_str())); |
| 245 | 248 | ||
| 249 | + // generate the tcUrl | ||
| 250 | + std::string param = ""; | ||
| 251 | + std::string tc_url = srs_generate_tc_url(ep_server, req->vhost, req->app, ep_port, param); | ||
| 252 | + | ||
| 246 | // upnode server identity will show in the connect_app of client. | 253 | // upnode server identity will show in the connect_app of client. |
| 247 | - if ((ret = client->connect_app(req->app, req->tcUrl, req)) != ERROR_SUCCESS) { | ||
| 248 | - srs_error("connect with server failed, tcUrl=%s. ret=%d", req->tcUrl.c_str(), ret); | 254 | + // @see https://github.com/winlinvip/simple-rtmp-server/issues/160 |
| 255 | + // the debug_srs_upnode is config in vhost and default to true. | ||
| 256 | + bool debug_srs_upnode = _srs_config->get_debug_srs_upnode(req->vhost); | ||
| 257 | + if ((ret = client->connect_app(req->app, tc_url, req, debug_srs_upnode)) != ERROR_SUCCESS) { | ||
| 258 | + srs_error("connect with server failed, tcUrl=%s. ret=%d", tc_url.c_str(), ret); | ||
| 249 | return ret; | 259 | return ret; |
| 250 | } | 260 | } |
| 251 | 261 | ||
| @@ -314,7 +324,7 @@ void SrsEdgeIngester::close_underlayer_socket() | @@ -314,7 +324,7 @@ void SrsEdgeIngester::close_underlayer_socket() | ||
| 314 | srs_close_stfd(stfd); | 324 | srs_close_stfd(stfd); |
| 315 | } | 325 | } |
| 316 | 326 | ||
| 317 | -int SrsEdgeIngester::connect_server() | 327 | +int SrsEdgeIngester::connect_server(string& ep_server, string& ep_port) |
| 318 | { | 328 | { |
| 319 | int ret = ERROR_SUCCESS; | 329 | int ret = ERROR_SUCCESS; |
| 320 | 330 | ||
| @@ -345,6 +355,10 @@ int SrsEdgeIngester::connect_server() | @@ -345,6 +355,10 @@ int SrsEdgeIngester::connect_server() | ||
| 345 | port = ::atoi(s_port.c_str()); | 355 | port = ::atoi(s_port.c_str()); |
| 346 | } | 356 | } |
| 347 | 357 | ||
| 358 | + // output the connected server and port. | ||
| 359 | + ep_server = server; | ||
| 360 | + ep_port = s_port; | ||
| 361 | + | ||
| 348 | // open socket. | 362 | // open socket. |
| 349 | int64_t timeout = SRS_EDGE_INGESTER_TIMEOUT_US; | 363 | int64_t timeout = SRS_EDGE_INGESTER_TIMEOUT_US; |
| 350 | if ((ret = srs_socket_connect(server, port, timeout, &stfd)) != ERROR_SUCCESS) { | 364 | if ((ret = srs_socket_connect(server, port, timeout, &stfd)) != ERROR_SUCCESS) { |
| @@ -414,7 +428,8 @@ int SrsEdgeForwarder::start() | @@ -414,7 +428,8 @@ int SrsEdgeForwarder::start() | ||
| 414 | 428 | ||
| 415 | send_error_code = ERROR_SUCCESS; | 429 | send_error_code = ERROR_SUCCESS; |
| 416 | 430 | ||
| 417 | - if ((ret = connect_server()) != ERROR_SUCCESS) { | 431 | + std::string ep_server, ep_port; |
| 432 | + if ((ret = connect_server(ep_server, ep_port)) != ERROR_SUCCESS) { | ||
| 418 | return ret; | 433 | return ret; |
| 419 | } | 434 | } |
| 420 | srs_assert(client); | 435 | srs_assert(client); |
| @@ -428,8 +443,8 @@ int SrsEdgeForwarder::start() | @@ -428,8 +443,8 @@ int SrsEdgeForwarder::start() | ||
| 428 | srs_error("handshake with server failed. ret=%d", ret); | 443 | srs_error("handshake with server failed. ret=%d", ret); |
| 429 | return ret; | 444 | return ret; |
| 430 | } | 445 | } |
| 431 | - if ((ret = client->connect_app(req->app, req->tcUrl)) != ERROR_SUCCESS) { | ||
| 432 | - srs_error("connect with server failed, tcUrl=%s. ret=%d", req->tcUrl.c_str(), ret); | 446 | + if ((ret = connect_app(ep_server, ep_port)) != ERROR_SUCCESS) { |
| 447 | + srs_error("connect with server failed. ret=%d", ret); | ||
| 433 | return ret; | 448 | return ret; |
| 434 | } | 449 | } |
| 435 | if ((ret = client->create_stream(stream_id)) != ERROR_SUCCESS) { | 450 | if ((ret = client->create_stream(stream_id)) != ERROR_SUCCESS) { |
| @@ -575,7 +590,7 @@ void SrsEdgeForwarder::close_underlayer_socket() | @@ -575,7 +590,7 @@ void SrsEdgeForwarder::close_underlayer_socket() | ||
| 575 | srs_close_stfd(stfd); | 590 | srs_close_stfd(stfd); |
| 576 | } | 591 | } |
| 577 | 592 | ||
| 578 | -int SrsEdgeForwarder::connect_server() | 593 | +int SrsEdgeForwarder::connect_server(string& ep_server, string& ep_port) |
| 579 | { | 594 | { |
| 580 | int ret = ERROR_SUCCESS; | 595 | int ret = ERROR_SUCCESS; |
| 581 | 596 | ||
| @@ -598,6 +613,10 @@ int SrsEdgeForwarder::connect_server() | @@ -598,6 +613,10 @@ int SrsEdgeForwarder::connect_server() | ||
| 598 | port = ::atoi(s_port.c_str()); | 613 | port = ::atoi(s_port.c_str()); |
| 599 | } | 614 | } |
| 600 | 615 | ||
| 616 | + // output the connected server and port. | ||
| 617 | + ep_server = server; | ||
| 618 | + ep_port = s_port; | ||
| 619 | + | ||
| 601 | // open socket. | 620 | // open socket. |
| 602 | int64_t timeout = SRS_EDGE_FORWARDER_TIMEOUT_US; | 621 | int64_t timeout = SRS_EDGE_FORWARDER_TIMEOUT_US; |
| 603 | if ((ret = srs_socket_connect(server, port, timeout, &stfd)) != ERROR_SUCCESS) { | 622 | if ((ret = srs_socket_connect(server, port, timeout, &stfd)) != ERROR_SUCCESS) { |
| @@ -622,6 +641,56 @@ int SrsEdgeForwarder::connect_server() | @@ -622,6 +641,56 @@ int SrsEdgeForwarder::connect_server() | ||
| 622 | return ret; | 641 | return ret; |
| 623 | } | 642 | } |
| 624 | 643 | ||
| 644 | +int SrsEdgeForwarder::connect_app(string ep_server, string ep_port) | ||
| 645 | +{ | ||
| 646 | + int ret = ERROR_SUCCESS; | ||
| 647 | + | ||
| 648 | + SrsRequest* req = _req; | ||
| 649 | + | ||
| 650 | + // args of request takes the srs info. | ||
| 651 | + if (req->args == NULL) { | ||
| 652 | + req->args = SrsAmf0Any::object(); | ||
| 653 | + } | ||
| 654 | + | ||
| 655 | + // notify server the edge identity, | ||
| 656 | + // @see https://github.com/winlinvip/simple-rtmp-server/issues/147 | ||
| 657 | + SrsAmf0Object* data = req->args; | ||
| 658 | + data->set("srs_sig", SrsAmf0Any::str(RTMP_SIG_SRS_KEY)); | ||
| 659 | + data->set("srs_server", SrsAmf0Any::str(RTMP_SIG_SRS_KEY" "RTMP_SIG_SRS_VERSION" ("RTMP_SIG_SRS_URL_SHORT")")); | ||
| 660 | + data->set("srs_license", SrsAmf0Any::str(RTMP_SIG_SRS_LICENSE)); | ||
| 661 | + data->set("srs_role", SrsAmf0Any::str(RTMP_SIG_SRS_ROLE)); | ||
| 662 | + data->set("srs_url", SrsAmf0Any::str(RTMP_SIG_SRS_URL)); | ||
| 663 | + data->set("srs_version", SrsAmf0Any::str(RTMP_SIG_SRS_VERSION)); | ||
| 664 | + data->set("srs_site", SrsAmf0Any::str(RTMP_SIG_SRS_WEB)); | ||
| 665 | + data->set("srs_email", SrsAmf0Any::str(RTMP_SIG_SRS_EMAIL)); | ||
| 666 | + data->set("srs_copyright", SrsAmf0Any::str(RTMP_SIG_SRS_COPYRIGHT)); | ||
| 667 | + data->set("srs_primary_authors", SrsAmf0Any::str(RTMP_SIG_SRS_PRIMARY_AUTHROS)); | ||
| 668 | + // for edge to directly get the id of client. | ||
| 669 | + data->set("srs_pid", SrsAmf0Any::number(getpid())); | ||
| 670 | + data->set("srs_id", SrsAmf0Any::number(_srs_context->get_id())); | ||
| 671 | + | ||
| 672 | + // local ip of edge | ||
| 673 | + std::vector<std::string> ips = srs_get_local_ipv4_ips(); | ||
| 674 | + assert(_srs_config->get_stats_network() < (int)ips.size()); | ||
| 675 | + std::string local_ip = ips[_srs_config->get_stats_network()]; | ||
| 676 | + data->set("srs_server_ip", SrsAmf0Any::str(local_ip.c_str())); | ||
| 677 | + | ||
| 678 | + // generate the tcUrl | ||
| 679 | + std::string param = ""; | ||
| 680 | + std::string tc_url = srs_generate_tc_url(ep_server, req->vhost, req->app, ep_port, param); | ||
| 681 | + | ||
| 682 | + // upnode server identity will show in the connect_app of client. | ||
| 683 | + // @see https://github.com/winlinvip/simple-rtmp-server/issues/160 | ||
| 684 | + // the debug_srs_upnode is config in vhost and default to true. | ||
| 685 | + bool debug_srs_upnode = _srs_config->get_debug_srs_upnode(req->vhost); | ||
| 686 | + if ((ret = client->connect_app(req->app, tc_url, req, debug_srs_upnode)) != ERROR_SUCCESS) { | ||
| 687 | + srs_error("connect with server failed, tcUrl=%s. ret=%d", tc_url.c_str(), ret); | ||
| 688 | + return ret; | ||
| 689 | + } | ||
| 690 | + | ||
| 691 | + return ret; | ||
| 692 | +} | ||
| 693 | + | ||
| 625 | SrsPlayEdge::SrsPlayEdge() | 694 | SrsPlayEdge::SrsPlayEdge() |
| 626 | { | 695 | { |
| 627 | state = SrsEdgeStateInit; | 696 | state = SrsEdgeStateInit; |
| @@ -33,6 +33,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | @@ -33,6 +33,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 33 | #include <srs_app_st.hpp> | 33 | #include <srs_app_st.hpp> |
| 34 | #include <srs_app_thread.hpp> | 34 | #include <srs_app_thread.hpp> |
| 35 | 35 | ||
| 36 | +#include <string> | ||
| 37 | + | ||
| 36 | class SrsStSocket; | 38 | class SrsStSocket; |
| 37 | class SrsRtmpServer; | 39 | class SrsRtmpServer; |
| 38 | class SrsSource; | 40 | class SrsSource; |
| @@ -100,8 +102,8 @@ public: | @@ -100,8 +102,8 @@ public: | ||
| 100 | private: | 102 | private: |
| 101 | virtual int ingest(); | 103 | virtual int ingest(); |
| 102 | virtual void close_underlayer_socket(); | 104 | virtual void close_underlayer_socket(); |
| 103 | - virtual int connect_server(); | ||
| 104 | - virtual int connect_app(); | 105 | + virtual int connect_server(std::string& ep_server, std::string& ep_port); |
| 106 | + virtual int connect_app(std::string ep_server, std::string ep_port); | ||
| 105 | virtual int process_publish_message(SrsMessage* msg); | 107 | virtual int process_publish_message(SrsMessage* msg); |
| 106 | }; | 108 | }; |
| 107 | 109 | ||
| @@ -149,7 +151,8 @@ public: | @@ -149,7 +151,8 @@ public: | ||
| 149 | virtual int proxy(SrsMessage* msg); | 151 | virtual int proxy(SrsMessage* msg); |
| 150 | private: | 152 | private: |
| 151 | virtual void close_underlayer_socket(); | 153 | virtual void close_underlayer_socket(); |
| 152 | - virtual int connect_server(); | 154 | + virtual int connect_server(std::string& ep_server, std::string& ep_port); |
| 155 | + virtual int connect_app(std::string ep_server, std::string ep_port); | ||
| 153 | }; | 156 | }; |
| 154 | 157 | ||
| 155 | /** | 158 | /** |
| @@ -81,8 +81,10 @@ int SrsForwarder::on_publish(SrsRequest* req, std::string forward_server) | @@ -81,8 +81,10 @@ int SrsForwarder::on_publish(SrsRequest* req, std::string forward_server) | ||
| 81 | { | 81 | { |
| 82 | int ret = ERROR_SUCCESS; | 82 | int ret = ERROR_SUCCESS; |
| 83 | 83 | ||
| 84 | + // TODO: FIXME: directly use the req object. | ||
| 84 | // forward app | 85 | // forward app |
| 85 | app = req->app; | 86 | app = req->app; |
| 87 | + vhost = req->vhost; | ||
| 86 | 88 | ||
| 87 | stream_name = req->stream; | 89 | stream_name = req->stream; |
| 88 | server = forward_server; | 90 | server = forward_server; |
| @@ -215,7 +217,11 @@ int SrsForwarder::cycle() | @@ -215,7 +217,11 @@ int SrsForwarder::cycle() | ||
| 215 | srs_error("handshake with server failed. ret=%d", ret); | 217 | srs_error("handshake with server failed. ret=%d", ret); |
| 216 | return ret; | 218 | return ret; |
| 217 | } | 219 | } |
| 218 | - if ((ret = client->connect_app(app, tc_url)) != ERROR_SUCCESS) { | 220 | + // TODO: FIXME: take debug info for srs, @see SrsEdgeForwarder.connect_server. |
| 221 | + // @see https://github.com/winlinvip/simple-rtmp-server/issues/160 | ||
| 222 | + // the debug_srs_upnode is config in vhost and default to true. | ||
| 223 | + bool debug_srs_upnode = _srs_config->get_debug_srs_upnode(vhost); | ||
| 224 | + if ((ret = client->connect_app(app, tc_url, NULL, debug_srs_upnode)) != ERROR_SUCCESS) { | ||
| 219 | srs_error("connect with server failed, tcUrl=%s. ret=%d", tc_url.c_str(), ret); | 225 | srs_error("connect with server failed, tcUrl=%s. ret=%d", tc_url.c_str(), ret); |
| 220 | return ret; | 226 | return ret; |
| 221 | } | 227 | } |
| @@ -53,6 +53,7 @@ class SrsForwarder : public ISrsThreadHandler | @@ -53,6 +53,7 @@ class SrsForwarder : public ISrsThreadHandler | ||
| 53 | private: | 53 | private: |
| 54 | std::string app; | 54 | std::string app; |
| 55 | std::string tc_url; | 55 | std::string tc_url; |
| 56 | + std::string vhost; | ||
| 56 | std::string stream_name; | 57 | std::string stream_name; |
| 57 | int stream_id; | 58 | int stream_id; |
| 58 | std::string server; | 59 | std::string server; |
| @@ -83,6 +84,7 @@ public: | @@ -83,6 +84,7 @@ public: | ||
| 83 | virtual int cycle(); | 84 | virtual int cycle(); |
| 84 | private: | 85 | private: |
| 85 | virtual void close_underlayer_socket(); | 86 | virtual void close_underlayer_socket(); |
| 87 | + // TODO: FIXME: take debug info for srs, @see SrsEdgeForwarder.connect_server. | ||
| 86 | virtual int connect_server(); | 88 | virtual int connect_server(); |
| 87 | virtual int forward(); | 89 | virtual int forward(); |
| 88 | }; | 90 | }; |
| @@ -31,7 +31,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | @@ -31,7 +31,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 31 | // current release version | 31 | // current release version |
| 32 | #define VERSION_MAJOR "0" | 32 | #define VERSION_MAJOR "0" |
| 33 | #define VERSION_MINOR "9" | 33 | #define VERSION_MINOR "9" |
| 34 | -#define VERSION_REVISION "200" | 34 | +#define VERSION_REVISION "201" |
| 35 | #define RTMP_SIG_SRS_VERSION VERSION_MAJOR"."VERSION_MINOR"."VERSION_REVISION | 35 | #define RTMP_SIG_SRS_VERSION VERSION_MAJOR"."VERSION_MINOR"."VERSION_REVISION |
| 36 | // server info. | 36 | // server info. |
| 37 | #define RTMP_SIG_SRS_KEY "SRS" | 37 | #define RTMP_SIG_SRS_KEY "SRS" |
| @@ -283,7 +283,7 @@ int srs_connect_app2(srs_rtmp_t rtmp, | @@ -283,7 +283,7 @@ int srs_connect_app2(srs_rtmp_t rtmp, | ||
| 283 | 283 | ||
| 284 | std::string sip, sserver, sauthors, sversion; | 284 | std::string sip, sserver, sauthors, sversion; |
| 285 | 285 | ||
| 286 | - if ((ret = context->rtmp->connect_app2(context->app, tcUrl, NULL, | 286 | + if ((ret = context->rtmp->connect_app2(context->app, tcUrl, NULL, true, |
| 287 | sip, sserver, sauthors, sversion, *srs_id, *srs_pid)) != ERROR_SUCCESS) { | 287 | sip, sserver, sauthors, sversion, *srs_id, *srs_pid)) != ERROR_SUCCESS) { |
| 288 | return ret; | 288 | return ret; |
| 289 | } | 289 | } |
| @@ -434,7 +434,7 @@ int SrsRtmpClient::complex_handshake() | @@ -434,7 +434,7 @@ int SrsRtmpClient::complex_handshake() | ||
| 434 | return ret; | 434 | return ret; |
| 435 | } | 435 | } |
| 436 | 436 | ||
| 437 | -int SrsRtmpClient::connect_app(string app, string tc_url, SrsRequest* req) | 437 | +int SrsRtmpClient::connect_app(string app, string tc_url, SrsRequest* req, bool debug_srs_upnode) |
| 438 | { | 438 | { |
| 439 | std::string srs_server_ip; | 439 | std::string srs_server_ip; |
| 440 | std::string srs_server; | 440 | std::string srs_server; |
| @@ -443,13 +443,13 @@ int SrsRtmpClient::connect_app(string app, string tc_url, SrsRequest* req) | @@ -443,13 +443,13 @@ int SrsRtmpClient::connect_app(string app, string tc_url, SrsRequest* req) | ||
| 443 | int srs_id = 0; | 443 | int srs_id = 0; |
| 444 | int srs_pid = 0; | 444 | int srs_pid = 0; |
| 445 | 445 | ||
| 446 | - return connect_app2(app, tc_url, req, | 446 | + return connect_app2(app, tc_url, req, debug_srs_upnode, |
| 447 | srs_server_ip, srs_server, srs_primary_authors, | 447 | srs_server_ip, srs_server, srs_primary_authors, |
| 448 | srs_version, srs_id, srs_pid); | 448 | srs_version, srs_id, srs_pid); |
| 449 | } | 449 | } |
| 450 | 450 | ||
| 451 | int SrsRtmpClient::connect_app2( | 451 | int SrsRtmpClient::connect_app2( |
| 452 | - string app, string tc_url, SrsRequest* req, | 452 | + string app, string tc_url, SrsRequest* req, bool debug_srs_upnode, |
| 453 | string& srs_server_ip, string& srs_server, string& srs_primary_authors, | 453 | string& srs_server_ip, string& srs_server, string& srs_primary_authors, |
| 454 | string& srs_version, int& srs_id, int& srs_pid | 454 | string& srs_version, int& srs_id, int& srs_pid |
| 455 | ){ | 455 | ){ |
| @@ -479,7 +479,9 @@ int SrsRtmpClient::connect_app2( | @@ -479,7 +479,9 @@ int SrsRtmpClient::connect_app2( | ||
| 479 | } | 479 | } |
| 480 | pkt->command_object->set("objectEncoding", SrsAmf0Any::number(0)); | 480 | pkt->command_object->set("objectEncoding", SrsAmf0Any::number(0)); |
| 481 | 481 | ||
| 482 | - if (req && req->args) { | 482 | + // @see https://github.com/winlinvip/simple-rtmp-server/issues/160 |
| 483 | + // the debug_srs_upnode is config in vhost and default to true. | ||
| 484 | + if (debug_srs_upnode && req && req->args) { | ||
| 483 | srs_freep(pkt->args); | 485 | srs_freep(pkt->args); |
| 484 | pkt->args = req->args->copy()->to_object(); | 486 | pkt->args = req->args->copy()->to_object(); |
| 485 | } | 487 | } |
| @@ -247,7 +247,8 @@ public: | @@ -247,7 +247,8 @@ public: | ||
| 247 | * pageUrl and swfUrl for refer antisuck. | 247 | * pageUrl and swfUrl for refer antisuck. |
| 248 | * args for edge to origin traverse auth, @see SrsRequest.args | 248 | * args for edge to origin traverse auth, @see SrsRequest.args |
| 249 | */ | 249 | */ |
| 250 | - virtual int connect_app(std::string app, std::string tc_url, SrsRequest* req=NULL); | 250 | + virtual int connect_app(std::string app, std::string tc_url, |
| 251 | + SrsRequest* req=NULL, bool debug_srs_upnode=true); | ||
| 251 | /** | 252 | /** |
| 252 | * connect to server, get the debug srs info. | 253 | * connect to server, get the debug srs info. |
| 253 | * | 254 | * |
| @@ -263,7 +264,7 @@ public: | @@ -263,7 +264,7 @@ public: | ||
| 263 | * @param srs_pid, int, debug info, server pid in log. | 264 | * @param srs_pid, int, debug info, server pid in log. |
| 264 | */ | 265 | */ |
| 265 | virtual int connect_app2( | 266 | virtual int connect_app2( |
| 266 | - std::string app, std::string tc_url, SrsRequest* req, | 267 | + std::string app, std::string tc_url, SrsRequest* req, bool debug_srs_upnode, |
| 267 | std::string& srs_server_ip, std::string& srs_server, std::string& srs_primary_authors, | 268 | std::string& srs_server_ip, std::string& srs_server, std::string& srs_primary_authors, |
| 268 | std::string& srs_version, int& srs_id, int& srs_pid | 269 | std::string& srs_version, int& srs_id, int& srs_pid |
| 269 | ); | 270 | ); |
| @@ -1497,6 +1497,17 @@ int SrsProtocol::on_recv_message(SrsMessage* msg) | @@ -1497,6 +1497,17 @@ int SrsProtocol::on_recv_message(SrsMessage* msg) | ||
| 1497 | SrsSetChunkSizePacket* pkt = dynamic_cast<SrsSetChunkSizePacket*>(packet); | 1497 | SrsSetChunkSizePacket* pkt = dynamic_cast<SrsSetChunkSizePacket*>(packet); |
| 1498 | srs_assert(pkt != NULL); | 1498 | srs_assert(pkt != NULL); |
| 1499 | 1499 | ||
| 1500 | + // for some server, the actual chunk size can greater than the max value(65536), | ||
| 1501 | + // so we just warning the invalid chunk size, and actually use it is ok, | ||
| 1502 | + // @see: https://github.com/winlinvip/simple-rtmp-server/issues/160 | ||
| 1503 | + if (pkt->chunk_size < SRS_CONSTS_RTMP_MIN_CHUNK_SIZE | ||
| 1504 | + || pkt->chunk_size > SRS_CONSTS_RTMP_MAX_CHUNK_SIZE) | ||
| 1505 | + { | ||
| 1506 | + srs_warn("accept chunk size %d, but should in [%d, %d]", | ||
| 1507 | + pkt->chunk_size, SRS_CONSTS_RTMP_MIN_CHUNK_SIZE, | ||
| 1508 | + SRS_CONSTS_RTMP_MAX_CHUNK_SIZE); | ||
| 1509 | + } | ||
| 1510 | + | ||
| 1500 | in_chunk_size = pkt->chunk_size; | 1511 | in_chunk_size = pkt->chunk_size; |
| 1501 | 1512 | ||
| 1502 | srs_trace("input chunk size to %d", pkt->chunk_size); | 1513 | srs_trace("input chunk size to %d", pkt->chunk_size); |
| @@ -3711,19 +3722,6 @@ int SrsSetChunkSizePacket::decode(SrsStream* stream) | @@ -3711,19 +3722,6 @@ int SrsSetChunkSizePacket::decode(SrsStream* stream) | ||
| 3711 | chunk_size = stream->read_4bytes(); | 3722 | chunk_size = stream->read_4bytes(); |
| 3712 | srs_info("decode chunk size success. chunk_size=%d", chunk_size); | 3723 | srs_info("decode chunk size success. chunk_size=%d", chunk_size); |
| 3713 | 3724 | ||
| 3714 | - if (chunk_size < SRS_CONSTS_RTMP_MIN_CHUNK_SIZE) { | ||
| 3715 | - ret = ERROR_RTMP_CHUNK_SIZE; | ||
| 3716 | - srs_error("invalid chunk size. min=%d, actual=%d, ret=%d", | ||
| 3717 | - ERROR_RTMP_CHUNK_SIZE, chunk_size, ret); | ||
| 3718 | - return ret; | ||
| 3719 | - } | ||
| 3720 | - if (chunk_size > SRS_CONSTS_RTMP_MAX_CHUNK_SIZE) { | ||
| 3721 | - ret = ERROR_RTMP_CHUNK_SIZE; | ||
| 3722 | - srs_error("invalid chunk size. max=%d, actual=%d, ret=%d", | ||
| 3723 | - SRS_CONSTS_RTMP_MAX_CHUNK_SIZE, chunk_size, ret); | ||
| 3724 | - return ret; | ||
| 3725 | - } | ||
| 3726 | - | ||
| 3727 | return ret; | 3725 | return ret; |
| 3728 | } | 3726 | } |
| 3729 | 3727 |
| @@ -491,6 +491,17 @@ std::string __full_conf = "" | @@ -491,6 +491,17 @@ std::string __full_conf = "" | ||
| 491 | " queue_length 10; \n" | 491 | " queue_length 10; \n" |
| 492 | "} \n" | 492 | "} \n" |
| 493 | " \n" | 493 | " \n" |
| 494 | + "# the vhost for srs debug info, whether send args in connect(tcUrl). \n" | ||
| 495 | + "vhost debug.srs.com { \n" | ||
| 496 | + " # when upnode(forward to, edge push to, edge pull from) is srs, \n" | ||
| 497 | + " # it's strongly recommend to open the debug_srs_upnode, \n" | ||
| 498 | + " # when connect to upnode, it will take the debug info, \n" | ||
| 499 | + " # for example, the id, source id, pid. \n" | ||
| 500 | + " # please see: https://github.com/winlinvip/simple-rtmp-server/wiki/SrsLog \n" | ||
| 501 | + " # default: on \n" | ||
| 502 | + " debug_srs_upnode on; \n" | ||
| 503 | + "} \n" | ||
| 504 | + " \n" | ||
| 494 | "# the vhost for antisuck. \n" | 505 | "# the vhost for antisuck. \n" |
| 495 | "vhost refer.anti_suck.com { \n" | 506 | "vhost refer.anti_suck.com { \n" |
| 496 | " # the common refer for play and publish. \n" | 507 | " # the common refer for play and publish. \n" |
| @@ -1864,6 +1875,7 @@ VOID TEST(ConfigMainTest, ParseFullConf) | @@ -1864,6 +1875,7 @@ VOID TEST(ConfigMainTest, ParseFullConf) | ||
| 1864 | EXPECT_TRUE(conf.get_vhost_enabled(vhost)); | 1875 | EXPECT_TRUE(conf.get_vhost_enabled(vhost)); |
| 1865 | EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); | 1876 | EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); |
| 1866 | EXPECT_TRUE(conf.get_gop_cache(vhost)); | 1877 | EXPECT_TRUE(conf.get_gop_cache(vhost)); |
| 1878 | + EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); | ||
| 1867 | EXPECT_FALSE(conf.get_atc(vhost)); | 1879 | EXPECT_FALSE(conf.get_atc(vhost)); |
| 1868 | EXPECT_TRUE(conf.get_atc_auto(vhost)); | 1880 | EXPECT_TRUE(conf.get_atc_auto(vhost)); |
| 1869 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); | 1881 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); |
| @@ -1944,6 +1956,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_same_edge) | @@ -1944,6 +1956,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_same_edge) | ||
| 1944 | EXPECT_TRUE(conf.get_vhost_enabled(vhost)); | 1956 | EXPECT_TRUE(conf.get_vhost_enabled(vhost)); |
| 1945 | EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); | 1957 | EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); |
| 1946 | EXPECT_TRUE(conf.get_gop_cache(vhost)); | 1958 | EXPECT_TRUE(conf.get_gop_cache(vhost)); |
| 1959 | + EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); | ||
| 1947 | EXPECT_FALSE(conf.get_atc(vhost)); | 1960 | EXPECT_FALSE(conf.get_atc(vhost)); |
| 1948 | EXPECT_TRUE(conf.get_atc_auto(vhost)); | 1961 | EXPECT_TRUE(conf.get_atc_auto(vhost)); |
| 1949 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); | 1962 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); |
| @@ -2023,6 +2036,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_change_edge) | @@ -2023,6 +2036,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_change_edge) | ||
| 2023 | /*EXPECT_TRUE(conf.get_vhost_enabled(vhost)); | 2036 | /*EXPECT_TRUE(conf.get_vhost_enabled(vhost)); |
| 2024 | EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); | 2037 | EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); |
| 2025 | EXPECT_TRUE(conf.get_gop_cache(vhost)); | 2038 | EXPECT_TRUE(conf.get_gop_cache(vhost)); |
| 2039 | + EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); | ||
| 2026 | EXPECT_FALSE(conf.get_atc(vhost)); | 2040 | EXPECT_FALSE(conf.get_atc(vhost)); |
| 2027 | EXPECT_TRUE(conf.get_atc_auto(vhost)); | 2041 | EXPECT_TRUE(conf.get_atc_auto(vhost)); |
| 2028 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); | 2042 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); |
| @@ -2096,6 +2110,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_dvr) | @@ -2096,6 +2110,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_dvr) | ||
| 2096 | EXPECT_TRUE(conf.get_vhost_enabled(vhost)); | 2110 | EXPECT_TRUE(conf.get_vhost_enabled(vhost)); |
| 2097 | EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); | 2111 | EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); |
| 2098 | EXPECT_TRUE(conf.get_gop_cache(vhost)); | 2112 | EXPECT_TRUE(conf.get_gop_cache(vhost)); |
| 2113 | + EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); | ||
| 2099 | EXPECT_FALSE(conf.get_atc(vhost)); | 2114 | EXPECT_FALSE(conf.get_atc(vhost)); |
| 2100 | EXPECT_TRUE(conf.get_atc_auto(vhost)); | 2115 | EXPECT_TRUE(conf.get_atc_auto(vhost)); |
| 2101 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); | 2116 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); |
| @@ -2169,6 +2184,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_ingest) | @@ -2169,6 +2184,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_ingest) | ||
| 2169 | EXPECT_TRUE(conf.get_vhost_enabled(vhost)); | 2184 | EXPECT_TRUE(conf.get_vhost_enabled(vhost)); |
| 2170 | EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); | 2185 | EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); |
| 2171 | EXPECT_TRUE(conf.get_gop_cache(vhost)); | 2186 | EXPECT_TRUE(conf.get_gop_cache(vhost)); |
| 2187 | + EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); | ||
| 2172 | EXPECT_FALSE(conf.get_atc(vhost)); | 2188 | EXPECT_FALSE(conf.get_atc(vhost)); |
| 2173 | EXPECT_TRUE(conf.get_atc_auto(vhost)); | 2189 | EXPECT_TRUE(conf.get_atc_auto(vhost)); |
| 2174 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); | 2190 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); |
| @@ -2263,6 +2279,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_http) | @@ -2263,6 +2279,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_http) | ||
| 2263 | EXPECT_TRUE(conf.get_vhost_enabled(vhost)); | 2279 | EXPECT_TRUE(conf.get_vhost_enabled(vhost)); |
| 2264 | EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); | 2280 | EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); |
| 2265 | EXPECT_TRUE(conf.get_gop_cache(vhost)); | 2281 | EXPECT_TRUE(conf.get_gop_cache(vhost)); |
| 2282 | + EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); | ||
| 2266 | EXPECT_FALSE(conf.get_atc(vhost)); | 2283 | EXPECT_FALSE(conf.get_atc(vhost)); |
| 2267 | EXPECT_TRUE(conf.get_atc_auto(vhost)); | 2284 | EXPECT_TRUE(conf.get_atc_auto(vhost)); |
| 2268 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); | 2285 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); |
| @@ -2339,6 +2356,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_hls_enabled) | @@ -2339,6 +2356,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_hls_enabled) | ||
| 2339 | EXPECT_TRUE(conf.get_vhost_enabled(vhost)); | 2356 | EXPECT_TRUE(conf.get_vhost_enabled(vhost)); |
| 2340 | EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); | 2357 | EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); |
| 2341 | EXPECT_TRUE(conf.get_gop_cache(vhost)); | 2358 | EXPECT_TRUE(conf.get_gop_cache(vhost)); |
| 2359 | + EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); | ||
| 2342 | EXPECT_FALSE(conf.get_atc(vhost)); | 2360 | EXPECT_FALSE(conf.get_atc(vhost)); |
| 2343 | EXPECT_TRUE(conf.get_atc_auto(vhost)); | 2361 | EXPECT_TRUE(conf.get_atc_auto(vhost)); |
| 2344 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); | 2362 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); |
| @@ -2415,6 +2433,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_hls_disabled) | @@ -2415,6 +2433,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_hls_disabled) | ||
| 2415 | EXPECT_TRUE(conf.get_vhost_enabled(vhost)); | 2433 | EXPECT_TRUE(conf.get_vhost_enabled(vhost)); |
| 2416 | EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); | 2434 | EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); |
| 2417 | EXPECT_TRUE(conf.get_gop_cache(vhost)); | 2435 | EXPECT_TRUE(conf.get_gop_cache(vhost)); |
| 2436 | + EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); | ||
| 2418 | EXPECT_FALSE(conf.get_atc(vhost)); | 2437 | EXPECT_FALSE(conf.get_atc(vhost)); |
| 2419 | EXPECT_TRUE(conf.get_atc_auto(vhost)); | 2438 | EXPECT_TRUE(conf.get_atc_auto(vhost)); |
| 2420 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); | 2439 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); |
| @@ -2491,6 +2510,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_http_hooks) | @@ -2491,6 +2510,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_http_hooks) | ||
| 2491 | EXPECT_TRUE(conf.get_vhost_enabled(vhost)); | 2510 | EXPECT_TRUE(conf.get_vhost_enabled(vhost)); |
| 2492 | EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); | 2511 | EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); |
| 2493 | EXPECT_TRUE(conf.get_gop_cache(vhost)); | 2512 | EXPECT_TRUE(conf.get_gop_cache(vhost)); |
| 2513 | + EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); | ||
| 2494 | EXPECT_FALSE(conf.get_atc(vhost)); | 2514 | EXPECT_FALSE(conf.get_atc(vhost)); |
| 2495 | EXPECT_TRUE(conf.get_atc_auto(vhost)); | 2515 | EXPECT_TRUE(conf.get_atc_auto(vhost)); |
| 2496 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); | 2516 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); |
| @@ -2598,6 +2618,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_min_delay) | @@ -2598,6 +2618,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_min_delay) | ||
| 2598 | EXPECT_TRUE(conf.get_vhost_enabled(vhost)); | 2618 | EXPECT_TRUE(conf.get_vhost_enabled(vhost)); |
| 2599 | EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); | 2619 | EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); |
| 2600 | EXPECT_FALSE(conf.get_gop_cache(vhost)); | 2620 | EXPECT_FALSE(conf.get_gop_cache(vhost)); |
| 2621 | + EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); | ||
| 2601 | EXPECT_FALSE(conf.get_atc(vhost)); | 2622 | EXPECT_FALSE(conf.get_atc(vhost)); |
| 2602 | EXPECT_TRUE(conf.get_atc_auto(vhost)); | 2623 | EXPECT_TRUE(conf.get_atc_auto(vhost)); |
| 2603 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); | 2624 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); |
| @@ -2675,6 +2696,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_refer_anti_suck) | @@ -2675,6 +2696,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_refer_anti_suck) | ||
| 2675 | EXPECT_TRUE(conf.get_vhost_enabled(vhost)); | 2696 | EXPECT_TRUE(conf.get_vhost_enabled(vhost)); |
| 2676 | EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); | 2697 | EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); |
| 2677 | EXPECT_TRUE(conf.get_gop_cache(vhost)); | 2698 | EXPECT_TRUE(conf.get_gop_cache(vhost)); |
| 2699 | + EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); | ||
| 2678 | EXPECT_FALSE(conf.get_atc(vhost)); | 2700 | EXPECT_FALSE(conf.get_atc(vhost)); |
| 2679 | EXPECT_TRUE(conf.get_atc_auto(vhost)); | 2701 | EXPECT_TRUE(conf.get_atc_auto(vhost)); |
| 2680 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); | 2702 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); |
| @@ -2767,6 +2789,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_forward_same_vhost) | @@ -2767,6 +2789,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_forward_same_vhost) | ||
| 2767 | EXPECT_TRUE(conf.get_vhost_enabled(vhost)); | 2789 | EXPECT_TRUE(conf.get_vhost_enabled(vhost)); |
| 2768 | EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); | 2790 | EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); |
| 2769 | EXPECT_TRUE(conf.get_gop_cache(vhost)); | 2791 | EXPECT_TRUE(conf.get_gop_cache(vhost)); |
| 2792 | + EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); | ||
| 2770 | EXPECT_FALSE(conf.get_atc(vhost)); | 2793 | EXPECT_FALSE(conf.get_atc(vhost)); |
| 2771 | EXPECT_TRUE(conf.get_atc_auto(vhost)); | 2794 | EXPECT_TRUE(conf.get_atc_auto(vhost)); |
| 2772 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); | 2795 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); |
| @@ -2850,6 +2873,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_forward_change_vhost) | @@ -2850,6 +2873,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_forward_change_vhost) | ||
| 2850 | /*EXPECT_TRUE(conf.get_vhost_enabled(vhost)); | 2873 | /*EXPECT_TRUE(conf.get_vhost_enabled(vhost)); |
| 2851 | EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); | 2874 | EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); |
| 2852 | EXPECT_TRUE(conf.get_gop_cache(vhost)); | 2875 | EXPECT_TRUE(conf.get_gop_cache(vhost)); |
| 2876 | + EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); | ||
| 2853 | EXPECT_FALSE(conf.get_atc(vhost)); | 2877 | EXPECT_FALSE(conf.get_atc(vhost)); |
| 2854 | EXPECT_TRUE(conf.get_atc_auto(vhost)); | 2878 | EXPECT_TRUE(conf.get_atc_auto(vhost)); |
| 2855 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); | 2879 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); |
| @@ -2927,6 +2951,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_transcode_mirror) | @@ -2927,6 +2951,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_transcode_mirror) | ||
| 2927 | EXPECT_TRUE(conf.get_vhost_enabled(vhost)); | 2951 | EXPECT_TRUE(conf.get_vhost_enabled(vhost)); |
| 2928 | EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); | 2952 | EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); |
| 2929 | EXPECT_TRUE(conf.get_gop_cache(vhost)); | 2953 | EXPECT_TRUE(conf.get_gop_cache(vhost)); |
| 2954 | + EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); | ||
| 2930 | EXPECT_FALSE(conf.get_atc(vhost)); | 2955 | EXPECT_FALSE(conf.get_atc(vhost)); |
| 2931 | EXPECT_TRUE(conf.get_atc_auto(vhost)); | 2956 | EXPECT_TRUE(conf.get_atc_auto(vhost)); |
| 2932 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); | 2957 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); |
| @@ -3015,6 +3040,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_transcode_crop) | @@ -3015,6 +3040,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_transcode_crop) | ||
| 3015 | EXPECT_TRUE(conf.get_vhost_enabled(vhost)); | 3040 | EXPECT_TRUE(conf.get_vhost_enabled(vhost)); |
| 3016 | EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); | 3041 | EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); |
| 3017 | EXPECT_TRUE(conf.get_gop_cache(vhost)); | 3042 | EXPECT_TRUE(conf.get_gop_cache(vhost)); |
| 3043 | + EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); | ||
| 3018 | EXPECT_FALSE(conf.get_atc(vhost)); | 3044 | EXPECT_FALSE(conf.get_atc(vhost)); |
| 3019 | EXPECT_TRUE(conf.get_atc_auto(vhost)); | 3045 | EXPECT_TRUE(conf.get_atc_auto(vhost)); |
| 3020 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); | 3046 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); |
| @@ -3103,6 +3129,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_transcode_logo) | @@ -3103,6 +3129,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_transcode_logo) | ||
| 3103 | EXPECT_TRUE(conf.get_vhost_enabled(vhost)); | 3129 | EXPECT_TRUE(conf.get_vhost_enabled(vhost)); |
| 3104 | EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); | 3130 | EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); |
| 3105 | EXPECT_TRUE(conf.get_gop_cache(vhost)); | 3131 | EXPECT_TRUE(conf.get_gop_cache(vhost)); |
| 3132 | + EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); | ||
| 3106 | EXPECT_FALSE(conf.get_atc(vhost)); | 3133 | EXPECT_FALSE(conf.get_atc(vhost)); |
| 3107 | EXPECT_TRUE(conf.get_atc_auto(vhost)); | 3134 | EXPECT_TRUE(conf.get_atc_auto(vhost)); |
| 3108 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); | 3135 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); |
| @@ -3191,6 +3218,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_transcode_audio) | @@ -3191,6 +3218,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_transcode_audio) | ||
| 3191 | EXPECT_TRUE(conf.get_vhost_enabled(vhost)); | 3218 | EXPECT_TRUE(conf.get_vhost_enabled(vhost)); |
| 3192 | EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); | 3219 | EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); |
| 3193 | EXPECT_TRUE(conf.get_gop_cache(vhost)); | 3220 | EXPECT_TRUE(conf.get_gop_cache(vhost)); |
| 3221 | + EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); | ||
| 3194 | EXPECT_FALSE(conf.get_atc(vhost)); | 3222 | EXPECT_FALSE(conf.get_atc(vhost)); |
| 3195 | EXPECT_TRUE(conf.get_atc_auto(vhost)); | 3223 | EXPECT_TRUE(conf.get_atc_auto(vhost)); |
| 3196 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); | 3224 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); |
| @@ -3273,6 +3301,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_transcode_vn) | @@ -3273,6 +3301,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_transcode_vn) | ||
| 3273 | EXPECT_TRUE(conf.get_vhost_enabled(vhost)); | 3301 | EXPECT_TRUE(conf.get_vhost_enabled(vhost)); |
| 3274 | EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); | 3302 | EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); |
| 3275 | EXPECT_TRUE(conf.get_gop_cache(vhost)); | 3303 | EXPECT_TRUE(conf.get_gop_cache(vhost)); |
| 3304 | + EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); | ||
| 3276 | EXPECT_FALSE(conf.get_atc(vhost)); | 3305 | EXPECT_FALSE(conf.get_atc(vhost)); |
| 3277 | EXPECT_TRUE(conf.get_atc_auto(vhost)); | 3306 | EXPECT_TRUE(conf.get_atc_auto(vhost)); |
| 3278 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); | 3307 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); |
| @@ -3355,6 +3384,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_transcode_copy) | @@ -3355,6 +3384,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_transcode_copy) | ||
| 3355 | EXPECT_TRUE(conf.get_vhost_enabled(vhost)); | 3384 | EXPECT_TRUE(conf.get_vhost_enabled(vhost)); |
| 3356 | EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); | 3385 | EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); |
| 3357 | EXPECT_TRUE(conf.get_gop_cache(vhost)); | 3386 | EXPECT_TRUE(conf.get_gop_cache(vhost)); |
| 3387 | + EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); | ||
| 3358 | EXPECT_FALSE(conf.get_atc(vhost)); | 3388 | EXPECT_FALSE(conf.get_atc(vhost)); |
| 3359 | EXPECT_TRUE(conf.get_atc_auto(vhost)); | 3389 | EXPECT_TRUE(conf.get_atc_auto(vhost)); |
| 3360 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); | 3390 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); |
| @@ -3433,6 +3463,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_transcode_all) | @@ -3433,6 +3463,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_transcode_all) | ||
| 3433 | EXPECT_TRUE(conf.get_vhost_enabled(vhost)); | 3463 | EXPECT_TRUE(conf.get_vhost_enabled(vhost)); |
| 3434 | EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); | 3464 | EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); |
| 3435 | EXPECT_TRUE(conf.get_gop_cache(vhost)); | 3465 | EXPECT_TRUE(conf.get_gop_cache(vhost)); |
| 3466 | + EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); | ||
| 3436 | EXPECT_FALSE(conf.get_atc(vhost)); | 3467 | EXPECT_FALSE(conf.get_atc(vhost)); |
| 3437 | EXPECT_TRUE(conf.get_atc_auto(vhost)); | 3468 | EXPECT_TRUE(conf.get_atc_auto(vhost)); |
| 3438 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); | 3469 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); |
| @@ -3649,6 +3680,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_transcode_ffempty) | @@ -3649,6 +3680,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_transcode_ffempty) | ||
| 3649 | EXPECT_TRUE(conf.get_vhost_enabled(vhost)); | 3680 | EXPECT_TRUE(conf.get_vhost_enabled(vhost)); |
| 3650 | EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); | 3681 | EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); |
| 3651 | EXPECT_TRUE(conf.get_gop_cache(vhost)); | 3682 | EXPECT_TRUE(conf.get_gop_cache(vhost)); |
| 3683 | + EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); | ||
| 3652 | EXPECT_FALSE(conf.get_atc(vhost)); | 3684 | EXPECT_FALSE(conf.get_atc(vhost)); |
| 3653 | EXPECT_TRUE(conf.get_atc_auto(vhost)); | 3685 | EXPECT_TRUE(conf.get_atc_auto(vhost)); |
| 3654 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); | 3686 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); |
| @@ -3737,6 +3769,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_transcode_app) | @@ -3737,6 +3769,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_transcode_app) | ||
| 3737 | EXPECT_TRUE(conf.get_vhost_enabled(vhost)); | 3769 | EXPECT_TRUE(conf.get_vhost_enabled(vhost)); |
| 3738 | EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); | 3770 | EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); |
| 3739 | EXPECT_TRUE(conf.get_gop_cache(vhost)); | 3771 | EXPECT_TRUE(conf.get_gop_cache(vhost)); |
| 3772 | + EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); | ||
| 3740 | EXPECT_FALSE(conf.get_atc(vhost)); | 3773 | EXPECT_FALSE(conf.get_atc(vhost)); |
| 3741 | EXPECT_TRUE(conf.get_atc_auto(vhost)); | 3774 | EXPECT_TRUE(conf.get_atc_auto(vhost)); |
| 3742 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); | 3775 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); |
| @@ -3825,6 +3858,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_transcode_stream) | @@ -3825,6 +3858,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_transcode_stream) | ||
| 3825 | EXPECT_TRUE(conf.get_vhost_enabled(vhost)); | 3858 | EXPECT_TRUE(conf.get_vhost_enabled(vhost)); |
| 3826 | EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); | 3859 | EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); |
| 3827 | EXPECT_TRUE(conf.get_gop_cache(vhost)); | 3860 | EXPECT_TRUE(conf.get_gop_cache(vhost)); |
| 3861 | + EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); | ||
| 3828 | EXPECT_FALSE(conf.get_atc(vhost)); | 3862 | EXPECT_FALSE(conf.get_atc(vhost)); |
| 3829 | EXPECT_TRUE(conf.get_atc_auto(vhost)); | 3863 | EXPECT_TRUE(conf.get_atc_auto(vhost)); |
| 3830 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); | 3864 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); |
| @@ -3913,6 +3947,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_bandcheck) | @@ -3913,6 +3947,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_bandcheck) | ||
| 3913 | EXPECT_TRUE(conf.get_vhost_enabled(vhost)); | 3947 | EXPECT_TRUE(conf.get_vhost_enabled(vhost)); |
| 3914 | EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); | 3948 | EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); |
| 3915 | EXPECT_TRUE(conf.get_gop_cache(vhost)); | 3949 | EXPECT_TRUE(conf.get_gop_cache(vhost)); |
| 3950 | + EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); | ||
| 3916 | EXPECT_FALSE(conf.get_atc(vhost)); | 3951 | EXPECT_FALSE(conf.get_atc(vhost)); |
| 3917 | EXPECT_TRUE(conf.get_atc_auto(vhost)); | 3952 | EXPECT_TRUE(conf.get_atc_auto(vhost)); |
| 3918 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); | 3953 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); |
| @@ -3990,6 +4025,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_chunksize) | @@ -3990,6 +4025,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_chunksize) | ||
| 3990 | EXPECT_TRUE(conf.get_vhost_enabled(vhost)); | 4025 | EXPECT_TRUE(conf.get_vhost_enabled(vhost)); |
| 3991 | EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); | 4026 | EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); |
| 3992 | EXPECT_TRUE(conf.get_gop_cache(vhost)); | 4027 | EXPECT_TRUE(conf.get_gop_cache(vhost)); |
| 4028 | + EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); | ||
| 3993 | EXPECT_FALSE(conf.get_atc(vhost)); | 4029 | EXPECT_FALSE(conf.get_atc(vhost)); |
| 3994 | EXPECT_TRUE(conf.get_atc_auto(vhost)); | 4030 | EXPECT_TRUE(conf.get_atc_auto(vhost)); |
| 3995 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); | 4031 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); |
| @@ -4067,6 +4103,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_jitter) | @@ -4067,6 +4103,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_jitter) | ||
| 4067 | EXPECT_TRUE(conf.get_vhost_enabled(vhost)); | 4103 | EXPECT_TRUE(conf.get_vhost_enabled(vhost)); |
| 4068 | EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); | 4104 | EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); |
| 4069 | EXPECT_TRUE(conf.get_gop_cache(vhost)); | 4105 | EXPECT_TRUE(conf.get_gop_cache(vhost)); |
| 4106 | + EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); | ||
| 4070 | EXPECT_FALSE(conf.get_atc(vhost)); | 4107 | EXPECT_FALSE(conf.get_atc(vhost)); |
| 4071 | EXPECT_TRUE(conf.get_atc_auto(vhost)); | 4108 | EXPECT_TRUE(conf.get_atc_auto(vhost)); |
| 4072 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); | 4109 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); |
| @@ -4144,6 +4181,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_atc) | @@ -4144,6 +4181,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_atc) | ||
| 4144 | EXPECT_TRUE(conf.get_vhost_enabled(vhost)); | 4181 | EXPECT_TRUE(conf.get_vhost_enabled(vhost)); |
| 4145 | EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); | 4182 | EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); |
| 4146 | EXPECT_TRUE(conf.get_gop_cache(vhost)); | 4183 | EXPECT_TRUE(conf.get_gop_cache(vhost)); |
| 4184 | + EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); | ||
| 4147 | EXPECT_TRUE(conf.get_atc(vhost)); | 4185 | EXPECT_TRUE(conf.get_atc(vhost)); |
| 4148 | EXPECT_TRUE(conf.get_atc_auto(vhost)); | 4186 | EXPECT_TRUE(conf.get_atc_auto(vhost)); |
| 4149 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); | 4187 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); |
| @@ -4221,6 +4259,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_removed) | @@ -4221,6 +4259,7 @@ VOID TEST(ConfigMainTest, ParseFullConf_removed) | ||
| 4221 | EXPECT_FALSE(conf.get_vhost_enabled(vhost)); | 4259 | EXPECT_FALSE(conf.get_vhost_enabled(vhost)); |
| 4222 | EXPECT_FALSE(conf.get_vhost_enabled(conf.get_vhost(vhost))); | 4260 | EXPECT_FALSE(conf.get_vhost_enabled(conf.get_vhost(vhost))); |
| 4223 | EXPECT_TRUE(conf.get_gop_cache(vhost)); | 4261 | EXPECT_TRUE(conf.get_gop_cache(vhost)); |
| 4262 | + EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); | ||
| 4224 | EXPECT_FALSE(conf.get_atc(vhost)); | 4263 | EXPECT_FALSE(conf.get_atc(vhost)); |
| 4225 | EXPECT_TRUE(conf.get_atc_auto(vhost)); | 4264 | EXPECT_TRUE(conf.get_atc_auto(vhost)); |
| 4226 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); | 4265 | EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); |
| @@ -4973,6 +5012,19 @@ VOID TEST(ConfigMainTest, CheckConf_gop_cache) | @@ -4973,6 +5012,19 @@ VOID TEST(ConfigMainTest, CheckConf_gop_cache) | ||
| 4973 | } | 5012 | } |
| 4974 | } | 5013 | } |
| 4975 | 5014 | ||
| 5015 | +VOID TEST(ConfigMainTest, CheckConf_debug_srs_upnode) | ||
| 5016 | +{ | ||
| 5017 | + if (true) { | ||
| 5018 | + MockSrsConfig conf; | ||
| 5019 | + EXPECT_TRUE(ERROR_SUCCESS == conf.parse(_MIN_OK_CONF"vhost v{debug_srs_upnode off;}")); | ||
| 5020 | + } | ||
| 5021 | + | ||
| 5022 | + if (true) { | ||
| 5023 | + MockSrsConfig conf; | ||
| 5024 | + EXPECT_TRUE(ERROR_SUCCESS != conf.parse(_MIN_OK_CONF"vhost v{debug_srs_upnodes off;}")); | ||
| 5025 | + } | ||
| 5026 | +} | ||
| 5027 | + | ||
| 4976 | VOID TEST(ConfigMainTest, CheckConf_refer) | 5028 | VOID TEST(ConfigMainTest, CheckConf_refer) |
| 4977 | { | 5029 | { |
| 4978 | if (true) { | 5030 | if (true) { |
-
请 注册 或 登录 后发表评论