Merged revisions 44213 via svnmerge from

https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r44213 | file | 2006-10-02 16:07:59 -0400 (Mon, 02 Oct 2006) | 2 lines

Change the fd on the I/O context in case it changed during the reload, which is indeed possible. (issue #7943 reported by eclubb)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@44215 65c4cc65-6c06-0410-ace0-fbb531ad65f3
1.4
Joshua Colp 19 years ago
parent 0cc2b24ea6
commit d56d4a3f7f

@ -565,6 +565,7 @@ static enum channelreloadreason sip_reloadreason; /*!< Reason for last rel
static struct sched_context *sched; /*!< The scheduling context */
static struct io_context *io; /*!< The IO context */
static int *sipsock_read_id; /*!< ID of IO entry for sipsock FD */
#define DEC_CALL_LIMIT 0
#define INC_CALL_LIMIT 1
@ -14455,7 +14456,7 @@ static void *do_monitor(void *data)
/* Add an I/O event to our SIP UDP socket */
if (sipsock > -1)
ast_io_add(io, sipsock, sipsock_read, AST_IO_IN, NULL);
sipsock_read_id = ast_io_add(io, sipsock, sipsock_read, AST_IO_IN, NULL);
/* From here on out, we die whenever asked */
for(;;) {
@ -14468,6 +14469,10 @@ static void *do_monitor(void *data)
if (option_verbose > 0)
ast_verbose(VERBOSE_PREFIX_1 "Reloading SIP\n");
sip_do_reload(sip_reloadreason);
/* Change the I/O fd of our UDP socket */
if (sipsock > -1)
sipsock_read_id = ast_io_change(io, sipsock_read_id, sipsock, NULL, 0, NULL);
}
/* Check for interfaces needing to be killed */
ast_mutex_lock(&iflock);

Loading…
Cancel
Save