diff options
author | Richard Mudgett <rmudgett@digium.com> | 2016-03-10 17:01:12 -0600 |
---|---|---|
committer | Richard Mudgett <rmudgett@digium.com> | 2016-03-16 14:53:00 -0500 |
commit | 5f6627a8a4f2ef68759cea0c27e7aaec25ac031c (patch) | |
tree | b8fe9abfc676412cb442bc9345b7c8909fcd7e53 /channels/sip/include | |
parent | 32bd7a64f98d5e9cf176cba1c701145201b1f987 (diff) |
chan_sip.c: Fix registration timeout and expire deadlock potential.
This patch is part of a series to resolve deadlocks in chan_sip.c.
Stopping a scheduled event can result in a deadlock if the scheduled event
is running when you try to stop the event. If you hold a lock needed by
the scheduled event while trying to stop the scheduled event then a
deadlock can happen. The general strategy for resolving the deadlock
potential is to push the actual starting and stopping of the scheduled
events off onto the scheduler/do_monitor() thread by scheduling an
immediate one shot scheduled event. Some restructuring may be needed
because the code may assume that the start/stop of the scheduled events is
immediate.
ASTERISK-25023
Change-Id: I2e40de89efc8ae6e8850771d089ca44bc604b508
Diffstat (limited to 'channels/sip/include')
-rw-r--r-- | channels/sip/include/sip.h | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/channels/sip/include/sip.h b/channels/sip/include/sip.h index c995ff198..3e6832152 100644 --- a/channels/sip/include/sip.h +++ b/channels/sip/include/sip.h @@ -547,8 +547,7 @@ enum sipregistrystate { * recover (not sure how correctly). */ - REG_STATE_TIMEOUT, /*!< Registration timed out - * \note XXX unused */ + REG_STATE_TIMEOUT, /*!< Registration about to expire, renewing registration */ REG_STATE_NOAUTH, /*!< We have no accepted credentials * \note fatal - no chance to proceed */ |