From f4341a13d0ec2ff8c0e0e83fff59fbbd1b487f95 Mon Sep 17 00:00:00 2001
From: Martin Pycko <martinp@digium.com>
Date: Mon, 14 Jul 2003 17:16:47 +0000
Subject: [PATCH] Add the possibility to delete all the contexts registered by
 a certain registrar with ast_merge_and_delete routine; make it the default
 behaviour when reloding extensions

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@1187 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 include/asterisk/pbx.h | 3 ++-
 pbx/pbx_config.c       | 2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/include/asterisk/pbx.h b/include/asterisk/pbx.h
index e1d7f96e28..ae45e5e73e 100755
--- a/include/asterisk/pbx.h
+++ b/include/asterisk/pbx.h
@@ -131,8 +131,9 @@ struct ast_context *ast_context_create(struct ast_context **extcontexts, char *n
 //! Merge the temporary contexts into a global contexts list and delete from the global list the ones that are being added
 /*!
  * \param extcontexts pointer to the ast_context structure pointer
+ * \param registar of the context; if it's set the routine will delete all contexts that belong to that registrar; if NULL only the contexts that are specified in extcontexts
  */
-void ast_merge_contexts_and_delete(struct ast_context **extcontexts);
+void ast_merge_contexts_and_delete(struct ast_context **extcontexts, char *registrar);
 
 //! Destroy a context (matches the specified context (or ANY context if NULL)
 /*!
diff --git a/pbx/pbx_config.c b/pbx/pbx_config.c
index 0b15e56947..8443863540 100755
--- a/pbx/pbx_config.c
+++ b/pbx/pbx_config.c
@@ -1641,7 +1641,7 @@ static int pbx_load_module(void)
 		}
 		ast_destroy(cfg);
 	}
-	ast_merge_contexts_and_delete(&local_contexts);
+	ast_merge_contexts_and_delete(&local_contexts,registrar);
 	return 0;
 }
 
-- 
GitLab