From 354d2bc6ecf40e0c8bc5eb9073112fad09ee79c9 Mon Sep 17 00:00:00 2001 From: Guido Falsi Date: Fri, 19 Jun 2020 14:18:21 +0000 Subject: MFH: r539600 Apply patch from upstream to fix regression in chan_dahdi channel variables. Obtainer from: https://issues.asterisk.org/jira/browse/ASTERISK-28955 Approved by: ports-secteam (joneum) --- net/asterisk16/Makefile | 1 + net/asterisk16/files/patch-channels-chan_dahdi.c | 21 +++++++++++++++++---- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/net/asterisk16/Makefile b/net/asterisk16/Makefile index f7ce60704a81..e01567056676 100644 --- a/net/asterisk16/Makefile +++ b/net/asterisk16/Makefile @@ -2,6 +2,7 @@ PORTNAME= asterisk PORTVERSION= 16.9.0 +PORTREVISION= 1 CATEGORIES= net MASTER_SITES= https://downloads.asterisk.org/pub/telephony/%SUBDIR%/:DEFAULT,g729 MASTER_SITE_SUBDIR= asterisk/ \ diff --git a/net/asterisk16/files/patch-channels-chan_dahdi.c b/net/asterisk16/files/patch-channels-chan_dahdi.c index 06be04cc4886..654fcdd47701 100644 --- a/net/asterisk16/files/patch-channels-chan_dahdi.c +++ b/net/asterisk16/files/patch-channels-chan_dahdi.c @@ -1,6 +1,6 @@ ---- channels/chan_dahdi.c.orig 2018-08-08 16:02:31 UTC +--- channels/chan_dahdi.c.orig 2020-06-16 14:39:16 UTC +++ channels/chan_dahdi.c -@@ -4599,6 +4599,8 @@ void dahdi_ec_enable(struct dahdi_pvt *p) +@@ -4649,6 +4649,8 @@ void dahdi_ec_enable(struct dahdi_pvt *p) return; } if (p->echocancel.head.tap_length) { @@ -9,7 +9,7 @@ #if defined(HAVE_PRI) || defined(HAVE_SS7) switch (p->sig) { #if defined(HAVE_PRI) -@@ -4629,7 +4631,9 @@ void dahdi_ec_enable(struct dahdi_pvt *p) +@@ -4679,7 +4681,9 @@ void dahdi_ec_enable(struct dahdi_pvt *p) break; } #endif /* defined(HAVE_PRI) || defined(HAVE_SS7) */ @@ -20,7 +20,7 @@ if (res) { ast_log(LOG_WARNING, "Unable to enable echo cancellation on channel %d (%s)\n", p->channel, strerror(errno)); } else { -@@ -4663,8 +4667,9 @@ void dahdi_ec_disable(struct dahdi_pvt *p) +@@ -4713,8 +4717,9 @@ void dahdi_ec_disable(struct dahdi_pvt *p) if (p->echocanon) { struct dahdi_echocanparams ecp = { .tap_length = 0 }; @@ -31,3 +31,16 @@ if (res) ast_log(LOG_WARNING, "Unable to disable echo cancellation on channel %d: %s\n", p->channel, strerror(errno)); +@@ -18147,8 +18152,10 @@ static int process_dahdi(struct dahdi_chan_conf *confp + if ((varval = strchr(varname, '='))) { + *varval++ = '\0'; + if ((tmpvar = ast_variable_new(varname, varval, ""))) { +- tmpvar->next = confp->chan.vars; +- confp->chan.vars = tmpvar; ++ if (ast_variable_list_replace(&confp->chan.vars, tmpvar)) { ++ tmpvar->next = confp->chan.vars; ++ confp->chan.vars = tmpvar; ++ } + } + } + } -- cgit v1.2.3