From b507a080b27c079b8af1bef2b4e6f648f43d42cb Mon Sep 17 00:00:00 2001 From: winlin Date: Sat, 28 May 2022 09:16:24 +0800 Subject: [PATCH] SRT: Refine parse SRT listen ip and port. --- trunk/src/app/srs_app_srt_server.cpp | 32 +++++++++++----------------- 1 file changed, 13 insertions(+), 19 deletions(-) diff --git a/trunk/src/app/srs_app_srt_server.cpp b/trunk/src/app/srs_app_srt_server.cpp index a550fe357..eaea6b286 100644 --- a/trunk/src/app/srs_app_srt_server.cpp +++ b/trunk/src/app/srs_app_srt_server.cpp @@ -188,27 +188,21 @@ srs_error_t SrsSrtServer::listen_srt_mpegts() if (! _srs_config->get_srt_enabled()) { return err; } - - // TODO: FIXME: bad code, refine it. - std::vector ip_ports; - std::stringstream ss; - ss << _srs_config->get_srt_listen_port(); - ip_ports.push_back(ss.str()); - - close_listeners(SrsSrtListenerMpegts); - - for (int i = 0; i < (int)ip_ports.size(); i++) { - SrsSrtAcceptor* acceptor = new SrsSrtMessageAcceptor(this, SrsSrtListenerMpegts); - acceptors_.push_back(acceptor); - int port; string ip; - srs_parse_endpoint(ip_ports[i], ip, port); - - if ((err = acceptor->listen(ip, port)) != srs_success) { - return srs_error_wrap(err, "srt listen %s:%d", ip.c_str(), port); - } + // Close all listener for SRT if exists. + close_listeners(SrsSrtListenerMpegts); + + // Start a listener for SRT, we might need multiple listeners in the future. + SrsSrtAcceptor* acceptor = new SrsSrtMessageAcceptor(this, SrsSrtListenerMpegts); + acceptors_.push_back(acceptor); + + int port; string ip; + srs_parse_endpoint(srs_int2str(_srs_config->get_srt_listen_port()), ip, port); + + if ((err = acceptor->listen(ip, port)) != srs_success) { + return srs_error_wrap(err, "srt listen %s:%d", ip.c_str(), port); } - + return err; }