Added setting to limit the SIP socket receiver buffer size.

git-svn-id: http://voip.null.ro/svn/yate@1292 acf43c95-373e-0410-b603-e72c3f656dc1
This commit is contained in:
paulc 2007-05-03 17:02:04 +00:00
parent fdd4693990
commit 870f99c7b5
2 changed files with 23 additions and 1 deletions

View File

@ -7,8 +7,11 @@
; addr: ipaddress: IP address to bind to
;addr=0.0.0.0
; buffer: int: Requested size of socket's receive buffer, 0 to use default
;buffer=0
; useragent: string: String to set in User-Agent or Server headers
;useragent=YATE/1.1.0
;useragent=YATE/1.2.0
; realm: string: Authentication realm to offer in authentication requests
;realm=Yate

View File

@ -1180,6 +1180,25 @@ bool YateSIPEndPoint::Init()
Debug(&plugin,DebugGoOn,"Unable to allocate UDP socket");
return false;
}
#ifdef SO_RCVBUF
int reqlen = s_cfg.getIntValue("general","buffer");
if (reqlen > 0) {
int buflen = reqlen;
if (buflen < 4096)
buflen = 4096;
if (m_sock->setOption(SOL_SOCKET,SO_RCVBUF,&buflen,sizeof(buflen))) {
buflen = 0;
socklen_t sz = sizeof(buflen);
if (m_sock->getOption(SOL_SOCKET,SO_RCVBUF,&buflen,&sz))
Debug(&plugin,DebugNote,"UDP buffer size is %d (requested %d)",buflen,reqlen);
else
Debug(&plugin,DebugWarn,"Could not get UDP buffer size (requested %d)",reqlen);
}
else
Debug(&plugin,DebugWarn,"Could not set UDP buffer size %d",buflen);
}
#endif
SocketAddr addr(AF_INET);
addr.port(s_cfg.getIntValue("general","port",5060));