From a3afe3be3ba1ef80457afd3fb98ed0842778e385 Mon Sep 17 00:00:00 2001 From: Jacek Konieczny Date: Tue, 14 Feb 2017 09:40:52 +0100 Subject: [PATCH] Version: 13.14.0 new subpackage added: asterisk-debug-tools --- ASTERISK-26679.patch | 76 -------------------------------------------- asterisk.spec | 30 ++++++++++++++--- 2 files changed, 25 insertions(+), 81 deletions(-) delete mode 100644 ASTERISK-26679.patch diff --git a/ASTERISK-26679.patch b/ASTERISK-26679.patch deleted file mode 100644 index a620162..0000000 --- a/ASTERISK-26679.patch +++ /dev/null @@ -1,76 +0,0 @@ -From e371e13b9eb6ce1f60bf31a8d25c7d4bdcd01d8d Mon Sep 17 00:00:00 2001 -From: Joshua Colp -Date: Tue, 31 Jan 2017 17:17:50 +0000 -Subject: [PATCH] res_pjsip: Handle invocation of callback on outgoing request when error occurs. - -There are some error cases in PJSIP when sending a request that will -result in the callback for the request being invoked. The code did not -handle this case and assumed on every error case that the callback was not -invoked. - -The code has been changed to check whether the callback has been invoked -and if so to absorb the error and treat it as a success. - -ASTERISK-26679 -ASTERISK-26699 - -Change-Id: I563982ba204da5aa1428989a11c06dd9087fea91 ---- - -diff --git a/res/res_pjsip.c b/res/res_pjsip.c -index 12c3baa..c35b782 100644 ---- a/res/res_pjsip.c -+++ b/res/res_pjsip.c -@@ -3402,6 +3402,8 @@ - void (*callback)(void *token, pjsip_event *e); - /*! Non-zero when the callback is called. */ - unsigned int cb_called; -+ /*! Non-zero if endpt_send_request_cb() was called. */ -+ unsigned int send_cb_called; - /*! Timeout timer. */ - pj_timer_entry *timeout_timer; - /*! Original timeout. */ -@@ -3418,6 +3420,12 @@ - { - struct send_request_wrapper *req_wrapper = token; - unsigned int cb_called; -+ -+ /* -+ * Needed because we cannot otherwise tell if this callback was -+ * called when pjsip_endpt_send_request() returns error. -+ */ -+ req_wrapper->send_cb_called = 1; - - if (e->body.tsx_state.type == PJSIP_EVENT_TIMER) { - ast_debug(2, "%p: PJSIP tsx timer expired\n", req_wrapper); -@@ -3602,12 +3610,10 @@ - if (ret_val != PJ_SUCCESS) { - char errmsg[PJ_ERR_MSG_SIZE]; - -- /* -- * endpt_send_request_cb is not expected to ever be called -- * because the request didn't get far enough to attempt -- * sending. -- */ -- ao2_ref(req_wrapper, -1); -+ if (!req_wrapper->send_cb_called) { -+ /* endpt_send_request_cb is not expected to ever be called now. */ -+ ao2_ref(req_wrapper, -1); -+ } - - /* Complain of failure to send the request. */ - pj_strerror(ret_val, errmsg, sizeof(errmsg)); -@@ -3644,6 +3650,13 @@ - req_wrapper->cb_called = 1; - } - ao2_unlock(req_wrapper); -+ } else if (req_wrapper->cb_called) { -+ /* -+ * We cannot report any error. The callback has -+ * already freed any resources associated with -+ * token. -+ */ -+ ret_val = PJ_SUCCESS; - } - } - diff --git a/asterisk.spec b/asterisk.spec index ad52c9e..771ec81 100644 --- a/asterisk.spec +++ b/asterisk.spec @@ -37,12 +37,12 @@ Summary: Asterisk PBX Summary(pl.UTF-8): Centralka (PBX) Asterisk Name: asterisk -Version: 13.13.1 -Release: 2 +Version: 13.14.0 +Release: 1 License: GPL v2 Group: Applications/System Source0: http://downloads.digium.com/pub/asterisk/releases/%{name}-%{version}.tar.gz -# Source0-md5: a246f52661eec538a8af95a1e93a706e +# Source0-md5: ca82856c60b629edd6226559233b8a6d Source1: %{name}.init Source2: %{name}.sysconfig Source3: %{name}.tmpfiles @@ -63,7 +63,6 @@ Patch5: %{name}-histedit.patch Patch6: x32.patch Patch7: %{name}-ilbc.patch Patch8: asterisk-opus.patch -Patch9: ASTERISK-26679.patch URL: http://www.asterisk.org/ BuildRequires: OSPToolkit-devel >= 4.0.0 %{?with_oss:BuildRequires: SDL-devel} @@ -732,6 +731,14 @@ Opus codec and file format support. %description opus -l pl.UTF-8 Obsługa kodeka i formatu plików Opus. +%package debug-tools +Summary: Debugging scripts for Asterisk +Group: Applications/Networking +Requires: %{name} = %{version}-%{release} + +%description debug-tools +Debugging scripts for Asterisk. + # define apidocs as last package, as it is the biggest one %package apidocs Summary: API documentation for Asterisk @@ -757,7 +764,6 @@ Dokumentacja API Asteriska. %patch5 -p1 %patch6 -p1 %patch7 -p1 -%patch9 -p1 %if %{with opus_vp8} %patch8 -p1 @@ -1035,6 +1041,10 @@ find doc/api -name '*.map' -size 0 -delete %{__rm} -r $RPM_BUILD_ROOT/usr/include/asterisk/doxygen +# fix script interpreters +%{__sed} -i -e '1s,^#!.*python,#!%{__python},' $RPM_BUILD_ROOT%{_datadir}/asterisk/scripts/* +%{__sed} -i -e '1s,^#!.*bash,#!/bin/bash,' $RPM_BUILD_ROOT%{_datadir}/asterisk/scripts/* + %clean rm -rf $RPM_BUILD_ROOT @@ -1409,6 +1419,8 @@ chown -R asterisk:asterisk /var/lib/asterisk %dir %{_datadir}/asterisk/rest-api %{_datadir}/asterisk/rest-api/*.json +%dir %{_datadir}/asterisk/scripts + %attr(770,root,asterisk) %dir %{_localstatedir}/lib/asterisk %dir %attr(750,root,asterisk) %{_localstatedir}/lib/asterisk/licenses @@ -1782,3 +1794,11 @@ chown -R asterisk:asterisk /var/lib/asterisk %files vorbis %defattr(644,root,root,755) %attr(755,root,root) %{_libdir}/asterisk/modules/format_ogg_vorbis.so + +%files debug-tools +%defattr(644,root,root,755) +%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/ast_debug_tools.conf +%attr(755,root,root) %{_datadir}/asterisk/scripts/ast_coredumper +%attr(755,root,root) %{_datadir}/asterisk/scripts/ast_logescalator +%attr(755,root,root) %{_datadir}/asterisk/scripts/ast_loggrabber +%attr(755,root,root) %{_datadir}/asterisk/scripts/refcounter.py -- 2.44.0