[asterisk-commits] jrose: trunk r375576 - in /trunk: ./ channels/chan_sip.c configs/sip.conf.sample
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Thu Nov 1 10:03:09 CDT 2012
Author: jrose
Date: Thu Nov 1 10:03:04 2012
New Revision: 375576
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=375576
Log:
chan_sip: Fix a bug causing SIP reloads to remove all entries from the registry
(closes issue ASTERISK-20611)
Reported by: Alisher
........
Merged revisions 375575 from http://svn.asterisk.org/svn/asterisk/branches/11
Modified:
trunk/ (props changed)
trunk/channels/chan_sip.c
trunk/configs/sip.conf.sample
Propchange: trunk/
------------------------------------------------------------------------------
Binary property 'branch-11-merged' - no diff available.
Modified: trunk/channels/chan_sip.c
URL: http://svnview.digium.com/svn/asterisk/trunk/channels/chan_sip.c?view=diff&rev=375576&r1=375575&r2=375576
==============================================================================
--- trunk/channels/chan_sip.c (original)
+++ trunk/channels/chan_sip.c Thu Nov 1 10:03:04 2012
@@ -30934,7 +30934,16 @@
static int peer_markall_func(void *device, void *arg, int flags)
{
struct sip_peer *peer = device;
- if (!peer->selfdestruct || sip_cfg.autocreatepeer != AUTOPEERS_PERSIST) {
+ if (!peer->selfdestruct) {
+ peer->the_mark = 1;
+ }
+ return 0;
+}
+
+static int peer_markall_autopeers_func(void *device, void *arg, int flags)
+{
+ struct sip_peer *peer = device;
+ if (peer->selfdestruct) {
peer->the_mark = 1;
}
return 0;
@@ -31076,6 +31085,11 @@
ast_mutex_unlock(&authl_lock);
cleanup_all_regs();
+
+ /* Then, actually destroy users and registry */
+ ASTOBJ_CONTAINER_DESTROYALL(®l, sip_registry_destroy);
+ ast_debug(4, "--------------- Done destroying registry list\n");
+ ao2_t_callback(peers, OBJ_NODATA, peer_markall_func, NULL, "callback to mark all peers");
}
/* Reset certificate handling for TLS sessions */
@@ -31802,11 +31816,8 @@
max_subexpiry = max_expiry;
}
- if (reason != CHANNEL_MODULE_LOAD) {
- /* Then, actually destroy users and registry */
- ASTOBJ_CONTAINER_DESTROYALL(®l, sip_registry_destroy);
- ast_debug(4, "--------------- Done destroying registry list\n");
- ao2_t_callback(peers, OBJ_NODATA, peer_markall_func, NULL, "callback to mark all peers");
+ if (reason != CHANNEL_MODULE_LOAD && sip_cfg.autocreatepeer != AUTOPEERS_PERSIST) {
+ ao2_t_callback(peers, OBJ_NODATA, peer_markall_autopeers_func, NULL, "callback to mark autopeers for destruction");
}
if (subscribe_network_change) {
Modified: trunk/configs/sip.conf.sample
URL: http://svnview.digium.com/svn/asterisk/trunk/configs/sip.conf.sample?view=diff&rev=375576&r1=375575&r2=375576
==============================================================================
--- trunk/configs/sip.conf.sample (original)
+++ trunk/configs/sip.conf.sample Thu Nov 1 10:03:04 2012
@@ -510,14 +510,14 @@
;
;refer_addheaders=yes ; on by default
-;autocreatepeers=no ; Allow any not exsplicitly defined here UAC to register
- ; WITHOUT AUTHENTICATION. Enabling this options poses a high
- ; potential security risk and should be avoided unless the
- ; server is behind a trusted firewall.
- ; When enabled by setting to "yes", the autocreated peers are
- ; pruned immediately when the "sip reload" command is issued
- ; through CLI. When enabled by setting to "persist", the auto-
- ; created peers survive the "sip reload" command.
+;autocreatepeer=no ; Allow any UAC not explicitly defined to register
+ ; WITHOUT AUTHENTICATION. Enabling this options poses a high
+ ; potential security risk and should be avoided unless the
+ ; server is behind a trusted firewall.
+ ; If set to "yes", then peers created in this fashion
+ ; are purged during SIP reloads.
+ ; When set to "persist", the peers created in this fashion
+ ; are not purged during SIP reloads.
;
;------------------------ TLS settings ------------------------------------------------------------
More information about the asterisk-commits
mailing list