[svn-commits] coreyfarrell: branch 11 r406934 - in /branches/11: ./ main/ res/
SVN commits to the Digium repositories
svn-commits at lists.digium.com
Thu Jan 30 14:28:42 CST 2014
Author: coreyfarrell
Date: Thu Jan 30 14:28:40 2014
New Revision: 406934
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=406934
Log:
res_rtp_asterisk & udptl: fix port selection to work with SELinux restrictions
ast_bind to a port reserved for another program by SELinux causes
errno == EACCES. This caused random failures when binding rtp or
udptl sockets. Treat EACCES as a non-fatal error, try next port.
(closes issue ASTERISK-23134)
Reported by: Corey Farrell
........
Merged revisions 406933 from http://svn.asterisk.org/svn/asterisk/branches/1.8
Modified:
branches/11/ (props changed)
branches/11/main/udptl.c
branches/11/res/res_rtp_asterisk.c
Propchange: branches/11/
------------------------------------------------------------------------------
Binary property 'branch-1.8-merged' - no diff available.
Modified: branches/11/main/udptl.c
URL: http://svnview.digium.com/svn/asterisk/branches/11/main/udptl.c?view=diff&rev=406934&r1=406933&r2=406934
==============================================================================
--- branches/11/main/udptl.c (original)
+++ branches/11/main/udptl.c Thu Jan 30 14:28:40 2014
@@ -1009,7 +1009,7 @@
if (ast_bind(udptl->fd, &udptl->us) == 0) {
break;
}
- if (errno != EADDRINUSE) {
+ if (errno != EADDRINUSE && errno != EACCES) {
ast_log(LOG_WARNING, "Unexpected bind error: %s\n", strerror(errno));
close(udptl->fd);
ast_free(udptl);
Modified: branches/11/res/res_rtp_asterisk.c
URL: http://svnview.digium.com/svn/asterisk/branches/11/res/res_rtp_asterisk.c?view=diff&rev=406934&r1=406933&r2=406934
==============================================================================
--- branches/11/res/res_rtp_asterisk.c (original)
+++ branches/11/res/res_rtp_asterisk.c Thu Jan 30 14:28:40 2014
@@ -1823,7 +1823,7 @@
}
/* See if we ran out of ports or if the bind actually failed because of something other than the address being in use */
- if (x == startplace || errno != EADDRINUSE) {
+ if (x == startplace || (errno != EADDRINUSE && errno != EACCES)) {
ast_log(LOG_ERROR, "Oh dear... we couldn't allocate a port for RTP instance '%p'\n", instance);
close(rtp->s);
ast_free(rtp);
More information about the svn-commits
mailing list