mirror of
https://github.com/ossrs/srs.git
synced 2025-03-09 15:49:59 +00:00
For #307, enable REUSEPORT to increase UDP buffer
This commit is contained in:
parent
a7f2bde8e2
commit
78aad11eeb
6 changed files with 54 additions and 10 deletions
|
@ -1332,7 +1332,6 @@ srs_error_t SrsRtcSession::on_rtcp(SrsUdpMuxSocket* skt)
|
|||
|
||||
SrsRtcServer::SrsRtcServer()
|
||||
{
|
||||
listener = NULL;
|
||||
timer = new SrsHourGlass(this, 1 * SRS_UTIME_SECONDS);
|
||||
|
||||
mmstfd = NULL;
|
||||
|
@ -1349,7 +1348,12 @@ SrsRtcServer::~SrsRtcServer()
|
|||
{
|
||||
_srs_config->unsubscribe(this);
|
||||
|
||||
srs_freep(listener);
|
||||
vector<SrsUdpMuxListener*>::iterator it;
|
||||
for (it = listeners.begin(); it != listeners.end(); ++it) {
|
||||
SrsUdpMuxListener* listener = *it;
|
||||
srs_freep(listener);
|
||||
}
|
||||
|
||||
srs_freep(timer);
|
||||
|
||||
srs_freep(trd);
|
||||
|
@ -1400,16 +1404,21 @@ srs_error_t SrsRtcServer::listen_udp()
|
|||
}
|
||||
|
||||
string ip = srs_any_address_for_listener();
|
||||
srs_assert(listeners.empty());
|
||||
|
||||
srs_freep(listener);
|
||||
listener = new SrsUdpMuxListener(this, ip, port);
|
||||
int nn_listeners = _srs_config->get_rtc_server_reuseport();
|
||||
for (int i = 0; i < nn_listeners; i++) {
|
||||
SrsUdpMuxListener* listener = new SrsUdpMuxListener(this, ip, port);
|
||||
|
||||
if ((err = listener->listen()) != srs_success) {
|
||||
return srs_error_wrap(err, "listen %s:%d", ip.c_str(), port);
|
||||
if ((err = listener->listen()) != srs_success) {
|
||||
srs_freep(listener);
|
||||
return srs_error_wrap(err, "listen %s:%d", ip.c_str(), port);
|
||||
}
|
||||
|
||||
srs_trace("rtc listen at udp://%s:%d, fd=%d", ip.c_str(), port, listener->fd());
|
||||
listeners.push_back(listener);
|
||||
}
|
||||
|
||||
srs_trace("rtc listen at udp://%s:%d, fd=%d", ip.c_str(), port, listener->fd());
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue