aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormatteo <matteo@f38db490-d61c-443f-a65b-d21fe96a405b>2003-03-04 06:00:19 +0000
committermatteo <matteo@f38db490-d61c-443f-a65b-d21fe96a405b>2003-03-04 06:00:19 +0000
commit91371ff934f1b3a9bcc3b5a4555143faefa53a70 (patch)
treea3cf1e0cb0fa8eefa5779698cef6b7f9329bd52e
parentddf7eb769521e76b87e0400c3bee66372111259c (diff)
Tue Mar 4 07:00:01 CET 2003
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@631 f38db490-d61c-443f-a65b-d21fe96a405b
-rwxr-xr-xpbx.c20
-rwxr-xr-xres/res_musiconhold.c16
2 files changed, 25 insertions, 11 deletions
diff --git a/pbx.c b/pbx.c
index 0f787513c..9e9a3ecaf 100755
--- a/pbx.c
+++ b/pbx.c
@@ -766,7 +766,6 @@ static void pbx_substitute_variables_helper(struct ast_channel *c,char *cp1,char
*cp2='\0';
do {
char *start,*start2;
- if (!(*wherearewe)) break;
if ((tmp=strstr(wherearewe,"${"))) {
variables++;
length=(int)(tmp-wherearewe);
@@ -818,16 +817,15 @@ static void pbx_substitute_variables_helper(struct ast_channel *c,char *cp1,char
cp1=cp2;
}
-
- pbx_substitute_variables_temp(c,cp1,&cp4);
-
- if (cp4) {
- /* reset output variable so we could store the result */
- *cp2='\0';
- length=strlen(cp4);
- strncat(cp2,cp4,length);
- } else {
- if (count) cp2[0]='\0';
+ if (count) {
+ pbx_substitute_variables_temp(c,cp1,&cp4);
+ if (cp4) {
+ /* reset output variable so we could store the result */
+ *cp2='\0';
+ length=strlen(cp4);
+ strncat(cp2,cp4,length);
+ } else
+ cp2[0]='\0';
}
break;
}
diff --git a/res/res_musiconhold.c b/res/res_musiconhold.c
index 127047186..0d540aebd 100755
--- a/res/res_musiconhold.c
+++ b/res/res_musiconhold.c
@@ -531,11 +531,27 @@ static void load_moh_classes(void)
}
}
+void ast_moh_destroy(void)
+{
+ struct mohclass *moh;
+ ast_pthread_mutex_lock(&moh_lock);
+ moh = mohclasses;
+ while(moh) {
+ if (moh->pid) {
+ kill(moh->pid, SIGKILL);
+ moh->pid = 0;
+ }
+ moh = moh->next;
+ }
+ ast_pthread_mutex_unlock(&moh_lock);
+}
+
int load_module(void)
{
int res;
load_moh_classes();
res = ast_register_application(app0, moh0_exec, synopsis0, descrip0);
+ atexit(ast_moh_destroy);
if (!res)
res = ast_register_application(app1, moh1_exec, synopsis1, descrip1);
if (!res)