mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-11-04 05:15:22 +00:00 
			
		
		
		
	Fix ability to do lots of outbound registrations (bug #5529)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@6897 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
		@@ -12891,12 +12891,18 @@ static void sip_poke_all_peers(void)
 | 
			
		||||
static void sip_send_all_registers(void)
 | 
			
		||||
{
 | 
			
		||||
	int ms;
 | 
			
		||||
 | 
			
		||||
	int regspacing;
 | 
			
		||||
	if (!regobjs)
 | 
			
		||||
		return;
 | 
			
		||||
	regspacing = default_expiry * 1000/regobjs;
 | 
			
		||||
	if (regspacing > 100)
 | 
			
		||||
		regspacing = 100;
 | 
			
		||||
	ms = regspacing;
 | 
			
		||||
	ASTOBJ_CONTAINER_TRAVERSE(®l, 1, do {
 | 
			
		||||
		ASTOBJ_WRLOCK(iterator);
 | 
			
		||||
		if (iterator->expire > -1)
 | 
			
		||||
			ast_sched_del(sched, iterator->expire);
 | 
			
		||||
		ms = (rand() >> 12) & 0x1fff;
 | 
			
		||||
		ms += regspacing;
 | 
			
		||||
		iterator->expire = ast_sched_add(sched, ms, sip_reregister, iterator);
 | 
			
		||||
		ASTOBJ_UNLOCK(iterator);
 | 
			
		||||
	} while (0)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user