From 1dd99cea1bec808f2947c85ce9c275130a9b0c3a Mon Sep 17 00:00:00 2001 From: Guido Falsi Date: Fri, 19 Jun 2020 14:17:15 +0000 Subject: MFH: r539599 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/asterisk13/Makefile | 1 + net/asterisk13/files/patch-channels-chan_dahdi.c | 21 +++++++++++++++++---- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/net/asterisk13/Makefile b/net/asterisk13/Makefile index f927a0671e29..f572bdd02116 100644 --- a/net/asterisk13/Makefile +++ b/net/asterisk13/Makefile @@ -2,6 +2,7 @@ PORTNAME= asterisk PORTVERSION= 13.32.0 +PORTREVISION= 1 CATEGORIES= net MASTER_SITES= https://downloads.asterisk.org/pub/telephony/%SUBDIR%/:DEFAULT,g729 MASTER_SITE_SUBDIR= asterisk/ \ diff --git a/net/asterisk13/files/patch-channels-chan_dahdi.c b/net/asterisk13/files/patch-channels-chan_dahdi.c index a2ade9ff9a49..e403ea87a28c 100644 --- a/net/asterisk13/files/patch-channels-chan_dahdi.c +++ b/net/asterisk13/files/patch-channels-chan_dahdi.c @@ -1,6 +1,6 @@ ---- channels/chan_dahdi.c.orig 2017-12-20 19:05:45 UTC +--- channels/chan_dahdi.c.orig 2020-06-11 08:42:48 UTC +++ channels/chan_dahdi.c -@@ -4666,6 +4666,8 @@ void dahdi_ec_enable(struct dahdi_pvt *p) +@@ -4716,6 +4716,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) -@@ -4696,7 +4698,8 @@ void dahdi_ec_enable(struct dahdi_pvt *p) +@@ -4746,7 +4748,8 @@ void dahdi_ec_enable(struct dahdi_pvt *p) break; } #endif /* defined(HAVE_PRI) || defined(HAVE_SS7) */ @@ -19,7 +19,7 @@ if (res) { ast_log(LOG_WARNING, "Unable to enable echo cancellation on channel %d (%s)\n", p->channel, strerror(errno)); } else { -@@ -4730,8 +4733,9 @@ void dahdi_ec_disable(struct dahdi_pvt *p) +@@ -4780,8 +4783,9 @@ void dahdi_ec_disable(struct dahdi_pvt *p) if (p->echocanon) { struct dahdi_echocanparams ecp = { .tap_length = 0 }; @@ -30,3 +30,16 @@ if (res) ast_log(LOG_WARNING, "Unable to disable echo cancellation on channel %d: %s\n", p->channel, strerror(errno)); +@@ -18271,8 +18275,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