summaryrefslogtreecommitdiff
path: root/channels/sip/include
diff options
context:
space:
mode:
authorRichard Mudgett <rmudgett@digium.com>2016-03-10 17:01:12 -0600
committerRichard Mudgett <rmudgett@digium.com>2016-03-16 14:44:52 -0500
commit72c444ba37b63b17563c2ac55b3ff1edbcacdd9a (patch)
treefa7f72fcc0a5ec48a53f1a50523e743b371b6687 /channels/sip/include
parentfbf8e04aed120930bca370fb41a40e4eac7dd134 (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.h3
1 files changed, 1 insertions, 2 deletions
diff --git a/channels/sip/include/sip.h b/channels/sip/include/sip.h
index c8854b58e..92dcd5627 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 */