[svn-commits] murf: branch 1.6.0 r131131 - in /branches/1.6.0: ./ main/pbx.c

SVN commits to the Digium repositories svn-commits at lists.digium.com
Tue Jul 15 18:41:22 CDT 2008


Author: murf
Date: Tue Jul 15 18:41:22 2008
New Revision: 131131

URL: http://svn.digium.com/view/asterisk?view=rev&rev=131131
Log:
Merged revisions 131129 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/trunk

........
r131129 | murf | 2008-07-15 17:36:19 -0600 (Tue, 15 Jul 2008) | 21 lines


(closes issue #12960)
Reported by: mnicholson

Spent most of the day on this bug, and the
solution was so simple. Just had to find and
understand the problem.

The problem was, that the routine to copy
the existing switches, includes, and ignorepats
from the old context to the new one, wasn't
getting called when the context is already 
existent. (In other words, if AEL is adding
a new context to the mix, they get copied,
but if pbx_config already defined a context,
then the copy wasn't happening. This made
no sense, so I moved the call to copy the 
includes & etc, no matter the case.



........

Modified:
    branches/1.6.0/   (props changed)
    branches/1.6.0/main/pbx.c

Propchange: branches/1.6.0/
------------------------------------------------------------------------------
Binary property 'trunk-merged' - no diff available.

Modified: branches/1.6.0/main/pbx.c
URL: http://svn.digium.com/view/asterisk/branches/1.6.0/main/pbx.c?view=diff&rev=131131&r1=131130&r2=131131
==============================================================================
--- branches/1.6.0/main/pbx.c (original)
+++ branches/1.6.0/main/pbx.c Tue Jul 15 18:41:22 2008
@@ -4077,6 +4077,7 @@
 		if (!strcmp(i->name, include) &&
 				(!registrar || !strcmp(i->registrar, registrar))) {
 			/* remove from list */
+			ast_verb(3, "Removing inclusion of context '%s' in context '%s; registrar=%s'\n", include, ast_get_context_name(con), registrar);
 			if (pi)
 				pi->next = i->next;
 			else
@@ -4131,6 +4132,7 @@
 		if (!strcmp(i->name, sw) && !strcmp(i->data, data) &&
 			(!registrar || !strcmp(i->registrar, registrar))) {
 			/* found, remove from list */
+			ast_verb(3, "Removing switch '%s' from context '%s; registrar=%s'\n", sw, ast_get_context_name(con), registrar);
 			AST_LIST_REMOVE_CURRENT(list);
 			ast_free(i); /* free switch and return */
 			ret = 0;
@@ -5620,6 +5622,7 @@
 	struct ast_ignorepat *ip;
 	struct ast_sw *sw;
 	
+	ast_verb(3, "merging incls/swits/igpats from old(%s) to new(%s) context, registrar = %s\n", ast_get_context_name(old), ast_get_context_name(new), registrar);
 	/* copy in the includes, switches, and ignorepats */
 	/* walk through includes */
 	for (i = NULL; (i = ast_walk_context_includes(old, i)) ; ) {
@@ -5681,10 +5684,10 @@
 				/* make sure the new context exists, so we have somewhere to stick this exten/prio */
 				if (!new) {
 					new = ast_context_find_or_create(extcontexts, exttable, context->name, prio_item->registrar); /* a new context created via priority from a different context in the old dialplan, gets its registrar from the prio's registrar */
-
-					/* copy in the includes, switches, and ignorepats */
-					context_merge_incls_swits_igps_other_registrars(new, context, registrar);
 				}
+
+				/* copy in the includes, switches, and ignorepats */
+				context_merge_incls_swits_igps_other_registrars(new, context, registrar);
 				if (!new) {
 					ast_log(LOG_ERROR,"Could not allocate a new context for %s in merge_and_delete! Danger!\n", context->name);
 					return; /* no sense continuing. */




More information about the svn-commits mailing list