From: <abe...@us...> - 2016-11-03 15:10:58
|
Revision: 7915 http://sourceforge.net/p/astlinux/code/7915 Author: abelbeck Date: 2016-11-03 15:10:56 +0000 (Thu, 03 Nov 2016) Log Message: ----------- zoneinfo, version bump to 2016i and PHP_TIMEZONEDB 2016.9 Modified Paths: -------------- branches/1.0/package/php/php.mk branches/1.0/package/zoneinfo/zoneinfo.mk Modified: branches/1.0/package/php/php.mk =================================================================== --- branches/1.0/package/php/php.mk 2016-11-03 14:57:42 UTC (rev 7914) +++ branches/1.0/package/php/php.mk 2016-11-03 15:10:56 UTC (rev 7915) @@ -13,7 +13,7 @@ PHP_DEPENDENCIES = host-pkg-config ifeq ($(BR2_PACKAGE_PHP_EXT_TIMEZONEDB),y) -PHP_TIMEZONEDB_VERSION = 2016.7 +PHP_TIMEZONEDB_VERSION = 2016.9 PHP_TIMEZONEDB_SITE = http://files.astlinux-project.org PHP_TIMEZONEDB_SOURCE = timezonedb-$(PHP_TIMEZONEDB_VERSION).tar.gz Modified: branches/1.0/package/zoneinfo/zoneinfo.mk =================================================================== --- branches/1.0/package/zoneinfo/zoneinfo.mk 2016-11-03 14:57:42 UTC (rev 7914) +++ branches/1.0/package/zoneinfo/zoneinfo.mk 2016-11-03 15:10:56 UTC (rev 7915) @@ -3,7 +3,7 @@ # zoneinfo # ############################################################## -ZONEINFO_VERSION := 2016g +ZONEINFO_VERSION := 2016i ZONEINFO_DATA := tzdata$(ZONEINFO_VERSION).tar.gz ZONEINFO_SOURCE := tzcode$(ZONEINFO_VERSION).tar.gz ZONEINFO_SITE := http://www.iana.org/time-zones/repository/releases This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <abe...@us...> - 2016-11-05 17:14:43
|
Revision: 7930 http://sourceforge.net/p/astlinux/code/7930 Author: abelbeck Date: 2016-11-05 17:14:41 +0000 (Sat, 05 Nov 2016) Log Message: ----------- asterisk, version bump to 11.24.1 and 13.12.1 w/pjsip patches Modified Paths: -------------- branches/1.0/package/asterisk/asterisk-11-configure-cross-fix.patch branches/1.0/package/asterisk/asterisk-11-extension-changed-verbosity-chan_sip.patch branches/1.0/package/asterisk/asterisk-11-make-clean-fix.patch branches/1.0/package/asterisk/asterisk-11-voicemail-multiple-recipients.patch branches/1.0/package/asterisk/asterisk-13-configure-menuselect-cross-fix.patch branches/1.0/package/asterisk/asterisk-13-extension-changed-verbosity-chan_sip.patch branches/1.0/package/asterisk/asterisk.mk branches/1.0/package/pjsip/asterisk-config_site.h Added Paths: ----------- branches/1.0/package/asterisk/asterisk-13-upstream-chan_sip-revert-lastrtprx-fix.patch branches/1.0/package/pjsip/pjsip-0001-r5397-pjsip_generic_array_max_count.patch branches/1.0/package/pjsip/pjsip-0001-r5400-pjsip_tx_data_dec_ref.patch branches/1.0/package/pjsip/pjsip-0002-r5435-add-pjsip_inv_session-ref_cnt.patch branches/1.0/package/pjsip/pjsip-0003-r5403-pjsip_IPV6_V6ONLY.patch branches/1.0/package/pjsip/pjsip-0004-resolver.c-Prevent-SERVFAIL-from-marking-name-server.patch branches/1.0/package/pjsip/pjsip-0005-Re-1969-Fix-crash-on-using-an-already-destroyed-SSL-.patch branches/1.0/package/pjsip/pjsip-0006-r5471-svn-backport-Various-fixes-for-DNS-IPv6.patch branches/1.0/package/pjsip/pjsip-0006-r5473-svn-backport-Fix-pending-query.patch branches/1.0/package/pjsip/pjsip-0006-r5475-svn-backport-Remove-DNS-cache-entry.patch branches/1.0/package/pjsip/pjsip-0006-r5477-svn-backport-Fix-DNS-write-on-freed-memory.patch Modified: branches/1.0/package/asterisk/asterisk-11-configure-cross-fix.patch =================================================================== --- branches/1.0/package/asterisk/asterisk-11-configure-cross-fix.patch 2016-11-04 22:47:37 UTC (rev 7929) +++ branches/1.0/package/asterisk/asterisk-11-configure-cross-fix.patch 2016-11-05 17:14:41 UTC (rev 7930) @@ -1,6 +1,6 @@ ---- asterisk-1.8.25.0/configure.ac.orig 2014-01-24 16:52:23.000000000 -0600 -+++ asterisk-1.8.25.0/configure.ac 2014-01-24 16:55:14.000000000 -0600 -@@ -2473,11 +2473,13 @@ +--- asterisk-11/configure.ac.orig 2014-01-24 16:52:23.000000000 -0600 ++++ asterisk-11/configure.ac 2014-01-24 16:55:14.000000000 -0600 +@@ -2462,11 +2462,13 @@ AC_OUTPUT ${ac_cv_path_EGREP} 'CURSES|GTK2|OSARCH|NEWT' makeopts > makeopts.acbak2 Modified: branches/1.0/package/asterisk/asterisk-11-extension-changed-verbosity-chan_sip.patch =================================================================== --- branches/1.0/package/asterisk/asterisk-11-extension-changed-verbosity-chan_sip.patch 2016-11-04 22:47:37 UTC (rev 7929) +++ branches/1.0/package/asterisk/asterisk-11-extension-changed-verbosity-chan_sip.patch 2016-11-05 17:14:41 UTC (rev 7930) @@ -1,6 +1,6 @@ ---- asterisk-11.17.1/channels/chan_sip.c.orig 2015-04-23 10:22:04.000000000 -0500 -+++ asterisk-11.17.1/channels/chan_sip.c 2015-04-23 10:22:40.000000000 -0500 -@@ -16816,7 +16816,7 @@ +--- asterisk-11/channels/chan_sip.c.orig 2015-04-23 10:22:04.000000000 -0500 ++++ asterisk-11/channels/chan_sip.c 2015-04-23 10:22:40.000000000 -0500 +@@ -16817,7 +16817,7 @@ } if (!force) { Modified: branches/1.0/package/asterisk/asterisk-11-make-clean-fix.patch =================================================================== --- branches/1.0/package/asterisk/asterisk-11-make-clean-fix.patch 2016-11-04 22:47:37 UTC (rev 7929) +++ branches/1.0/package/asterisk/asterisk-11-make-clean-fix.patch 2016-11-05 17:14:41 UTC (rev 7930) @@ -1,5 +1,5 @@ ---- asterisk-11.23.1/Makefile.orig 2016-10-09 17:19:53.204176413 -0500 -+++ asterisk-11.23.1/Makefile 2016-10-09 17:21:11.339716525 -0500 +--- asterisk-11/Makefile.orig 2016-10-09 17:19:53.204176413 -0500 ++++ asterisk-11/Makefile 2016-10-09 17:21:11.339716525 -0500 @@ -98,8 +98,8 @@ export LDCONFIG_FLAGS export PYTHON Modified: branches/1.0/package/asterisk/asterisk-11-voicemail-multiple-recipients.patch =================================================================== --- branches/1.0/package/asterisk/asterisk-11-voicemail-multiple-recipients.patch 2016-11-04 22:47:37 UTC (rev 7929) +++ branches/1.0/package/asterisk/asterisk-11-voicemail-multiple-recipients.patch 2016-11-05 17:14:41 UTC (rev 7930) @@ -1,5 +1,5 @@ ---- asterisk-11.16.0/apps/app_voicemail.c.orig 2015-01-23 08:51:03.000000000 -0600 -+++ asterisk-11.16.0/apps/app_voicemail.c 2015-02-10 09:58:04.000000000 -0600 +--- asterisk-11/apps/app_voicemail.c.orig 2015-01-23 08:51:03.000000000 -0600 ++++ asterisk-11/apps/app_voicemail.c 2015-02-10 09:58:04.000000000 -0600 @@ -753,7 +753,7 @@ char mailbox[AST_MAX_EXTENSION]; /*!< Mailbox id, unique within vm context */ char password[80]; /*!< Secret pin code, numbers only */ @@ -145,7 +145,7 @@ } if (stringp && (s = strsep(&stringp, ","))) { ast_copy_string(vmu->pager, s, sizeof(vmu->pager)); -@@ -14084,7 +14100,7 @@ +@@ -14088,7 +14105,7 @@ } populate_defaults(vmu); Modified: branches/1.0/package/asterisk/asterisk-13-configure-menuselect-cross-fix.patch =================================================================== --- branches/1.0/package/asterisk/asterisk-13-configure-menuselect-cross-fix.patch 2016-11-04 22:47:37 UTC (rev 7929) +++ branches/1.0/package/asterisk/asterisk-13-configure-menuselect-cross-fix.patch 2016-11-05 17:14:41 UTC (rev 7930) @@ -1,6 +1,6 @@ ---- asterisk-13.1.0/configure.ac.orig 2014-01-24 16:52:23.000000000 -0600 -+++ asterisk-13.1.0/configure.ac 2014-01-24 16:55:14.000000000 -0600 -@@ -2625,11 +2625,13 @@ +--- asterisk-13/configure.ac.orig 2014-01-24 16:52:23.000000000 -0600 ++++ asterisk-13/configure.ac 2014-01-24 16:55:14.000000000 -0600 +@@ -2652,11 +2652,13 @@ AC_OUTPUT ${ac_cv_path_EGREP} 'CURSES|GTK2|OSARCH|NEWT' makeopts > makeopts.acbak2 Modified: branches/1.0/package/asterisk/asterisk-13-extension-changed-verbosity-chan_sip.patch =================================================================== --- branches/1.0/package/asterisk/asterisk-13-extension-changed-verbosity-chan_sip.patch 2016-11-04 22:47:37 UTC (rev 7929) +++ branches/1.0/package/asterisk/asterisk-13-extension-changed-verbosity-chan_sip.patch 2016-11-05 17:14:41 UTC (rev 7930) @@ -1,6 +1,6 @@ ---- asterisk-11.17.1/channels/chan_sip.c.orig 2015-04-23 10:22:04.000000000 -0500 -+++ asterisk-11.17.1/channels/chan_sip.c 2015-04-23 10:22:40.000000000 -0500 -@@ -17336,7 +17336,7 @@ +--- asterisk-13/channels/chan_sip.c.orig 2015-04-23 10:22:04.000000000 -0500 ++++ asterisk-13/channels/chan_sip.c 2015-04-23 10:22:40.000000000 -0500 +@@ -17358,7 +17358,7 @@ } if (!force) { Added: branches/1.0/package/asterisk/asterisk-13-upstream-chan_sip-revert-lastrtprx-fix.patch =================================================================== --- branches/1.0/package/asterisk/asterisk-13-upstream-chan_sip-revert-lastrtprx-fix.patch (rev 0) +++ branches/1.0/package/asterisk/asterisk-13-upstream-chan_sip-revert-lastrtprx-fix.patch 2016-11-05 17:14:41 UTC (rev 7930) @@ -0,0 +1,17 @@ +X-Git-Url: http://git.asterisk.org/gitweb/?p=asterisk%2Fasterisk.git;a=blobdiff_plain;f=channels%2Fchan_sip.c;h=b661f0de227ff5023155faf7181892b28699a519;hp=b6b4cc86e50c7eb36d26abb0620f0f5c3fbb09e0;hb=cb30963d222cb1e12af9bbf8dfed58001c9fcaf4;hpb=57a9797e0ac51eae3b8f3254627646b9698a60d2 + +diff --git a/channels/chan_sip.c b/channels/chan_sip.c +index b6b4cc8..b661f0d 100644 +--- a/channels/chan_sip.c ++++ b/channels/chan_sip.c +@@ -8628,9 +8628,7 @@ static struct ast_frame *sip_read(struct ast_channel *ast) + + sip_pvt_lock(p); + fr = sip_rtp_read(ast, p, &faxdetected); +- if (fr && fr->frametype != AST_FRAME_NULL) { +- p->lastrtprx = time(NULL); +- } ++ p->lastrtprx = time(NULL); + + /* If we detect a CNG tone and fax detection is enabled then send us off to the fax extension */ + if (faxdetected && ast_test_flag(&p->flags[1], SIP_PAGE2_FAX_DETECT_CNG)) { Modified: branches/1.0/package/asterisk/asterisk.mk =================================================================== --- branches/1.0/package/asterisk/asterisk.mk 2016-11-04 22:47:37 UTC (rev 7929) +++ branches/1.0/package/asterisk/asterisk.mk 2016-11-05 17:14:41 UTC (rev 7930) @@ -4,10 +4,10 @@ # ############################################################## ifeq ($(BR2_PACKAGE_ASTERISK_v11),y) -ASTERISK_VERSION := 11.23.1 +ASTERISK_VERSION := 11.24.1 else ifeq ($(BR2_PACKAGE_ASTERISK_v13),y) -ASTERISK_VERSION := 13.11.2 +ASTERISK_VERSION := 13.12.1 else ASTERISK_VERSION := 15.0.0 endif @@ -352,7 +352,6 @@ rm -f $(TARGET_DIR)/usr/share/snmp/mibs/ASTERISK-MIB.txt rm -f $(TARGET_DIR)/usr/share/snmp/mibs/DIGIUM-MIB.txt -$(MAKE) -C $(ASTERISK_DIR) clean - rm -rf $(BUILD_DIR)/asterisk rm -rf $(BUILD_DIR)/asterisk-$(ASTERISK_VERSION) asterisk-sounds-clean: Modified: branches/1.0/package/pjsip/asterisk-config_site.h =================================================================== --- branches/1.0/package/pjsip/asterisk-config_site.h 2016-11-04 22:47:37 UTC (rev 7929) +++ branches/1.0/package/pjsip/asterisk-config_site.h 2016-11-05 17:14:41 UTC (rev 7930) @@ -4,6 +4,14 @@ #include <sys/select.h> +/* + * Defining PJMEDIA_HAS_SRTP to 0 does NOT disable Asterisk's ability to use srtp. + * It only disables the pjmedia srtp transport which Asterisk doesn't use. + * The reason for the disable is that while Asterisk works fine with older libsrtp + * versions, newer versions of pjproject won't compile with them. + */ +#define PJMEDIA_HAS_SRTP 0 + #define PJ_HAS_IPV6 1 #define NDEBUG 1 #define PJ_MAX_HOSTNAME (256) @@ -41,3 +49,9 @@ /* Defaults too low for WebRTC */ #define PJ_ICE_MAX_CAND 32 #define PJ_ICE_MAX_CHECKS (PJ_ICE_MAX_CAND * 2) + +/* Increase limits to allow more formats */ +#define PJMEDIA_MAX_SDP_FMT 64 +#define PJMEDIA_MAX_SDP_BANDW 4 +#define PJMEDIA_MAX_SDP_ATTR (PJMEDIA_MAX_SDP_FMT*2 + 4) +#define PJMEDIA_MAX_SDP_MEDIA 16 Added: branches/1.0/package/pjsip/pjsip-0001-r5397-pjsip_generic_array_max_count.patch =================================================================== --- branches/1.0/package/pjsip/pjsip-0001-r5397-pjsip_generic_array_max_count.patch (rev 0) +++ branches/1.0/package/pjsip/pjsip-0001-r5397-pjsip_generic_array_max_count.patch 2016-11-05 17:14:41 UTC (rev 7930) @@ -0,0 +1,58 @@ +This patch updates array limit checks and docs +in pjsip_evsub_register_pkg() and pjsip_endpt_add_capability(). + +Index: pjsip/include/pjsip/sip_endpoint.h +=================================================================== +--- a/pjsip/include/pjsip/sip_endpoint.h (revision 5396) ++++ b/pjsip/include/pjsip/sip_endpoint.h (revision 5397) +@@ -583,7 +583,8 @@ + * @param hname If htype specifies PJSIP_H_OTHER, then the header name + * must be supplied in this argument. Otherwise the value + * must be set to NULL. +- * @param count The number of tags in the array. ++ * @param count The number of tags in the array. The value must not ++ * be greater than PJSIP_GENERIC_ARRAY_MAX_COUNT. + * @param tags Array of tags describing the capabilities or extensions + * to be added to the appropriate header. + * +Index: pjsip/include/pjsip-simple/evsub.h +=================================================================== +--- a/pjsip/include/pjsip-simple/evsub.h (revision 5396) ++++ b/pjsip/include/pjsip-simple/evsub.h (revision 5397) +@@ -246,7 +246,8 @@ + * registered. + * @param event_name Event package identification. + * @param expires Default subscription expiration time, in seconds. +- * @param accept_cnt Number of strings in Accept array. ++ * @param accept_cnt Number of strings in Accept array. The value must ++ * not be greater than PJSIP_GENERIC_ARRAY_MAX_COUNT. + * @param accept Array of Accept value. + * + * @return PJ_SUCCESS on success. +Index: pjsip/src/pjsip/sip_endpoint.c +=================================================================== +--- a/pjsip/src/pjsip/sip_endpoint.c (revision 5396) ++++ b/pjsip/src/pjsip/sip_endpoint.c (revision 5397) +@@ -371,6 +371,7 @@ + + /* Check arguments. */ + PJ_ASSERT_RETURN(endpt!=NULL && count>0 && tags, PJ_EINVAL); ++ PJ_ASSERT_RETURN(count <= PJSIP_GENERIC_ARRAY_MAX_COUNT, PJ_ETOOMANY); + PJ_ASSERT_RETURN(htype==PJSIP_H_ACCEPT || + htype==PJSIP_H_ALLOW || + htype==PJSIP_H_SUPPORTED, +Index: pjsip/src/pjsip-simple/evsub.c +=================================================================== +--- a/pjsip/src/pjsip-simple/evsub.c (revision 5396) ++++ b/pjsip/src/pjsip-simple/evsub.c (revision 5397) +@@ -412,7 +412,9 @@ + unsigned i; + + PJ_ASSERT_RETURN(pkg_mod && event_name, PJ_EINVAL); +- PJ_ASSERT_RETURN(accept_cnt < PJ_ARRAY_SIZE(pkg->pkg_accept->values), ++ ++ /* Make sure accept_cnt < PJ_ARRAY_SIZE(pkg->pkg_accept->values) */ ++ PJ_ASSERT_RETURN(accept_cnt <= PJSIP_GENERIC_ARRAY_MAX_COUNT, + PJ_ETOOMANY); + + /* Make sure evsub module has been initialized */ Added: branches/1.0/package/pjsip/pjsip-0001-r5400-pjsip_tx_data_dec_ref.patch =================================================================== --- branches/1.0/package/pjsip/pjsip-0001-r5400-pjsip_tx_data_dec_ref.patch (rev 0) +++ branches/1.0/package/pjsip/pjsip-0001-r5400-pjsip_tx_data_dec_ref.patch 2016-11-05 17:14:41 UTC (rev 7930) @@ -0,0 +1,24 @@ +This patch fixes the issue in pjsip_tx_data_dec_ref() +when tx_data_destroy can be called more than once, +and checks if invalid value (e.g. NULL) is passed to. + +Index: pjsip/src/pjsip/sip_transport.c +=================================================================== +--- a/pjsip/src/pjsip/sip_transport.c (revision 5399) ++++ b/pjsip/src/pjsip/sip_transport.c (revision 5400) +@@ -491,8 +491,13 @@ + */ + PJ_DEF(pj_status_t) pjsip_tx_data_dec_ref( pjsip_tx_data *tdata ) + { +- pj_assert( pj_atomic_get(tdata->ref_cnt) > 0); +- if (pj_atomic_dec_and_get(tdata->ref_cnt) <= 0) { ++ pj_atomic_value_t ref_cnt; ++ ++ PJ_ASSERT_RETURN(tdata && tdata->ref_cnt, PJ_EINVAL); ++ ++ ref_cnt = pj_atomic_dec_and_get(tdata->ref_cnt); ++ pj_assert( ref_cnt >= 0); ++ if (ref_cnt == 0) { + tx_data_destroy(tdata); + return PJSIP_EBUFDESTROYED; + } else { Added: branches/1.0/package/pjsip/pjsip-0002-r5435-add-pjsip_inv_session-ref_cnt.patch =================================================================== --- branches/1.0/package/pjsip/pjsip-0002-r5435-add-pjsip_inv_session-ref_cnt.patch (rev 0) +++ branches/1.0/package/pjsip/pjsip-0002-r5435-add-pjsip_inv_session-ref_cnt.patch 2016-11-05 17:14:41 UTC (rev 7930) @@ -0,0 +1,212 @@ +When a transport error occured on an INVITE session +the stack calls on_tsx_state_changed with new state +PJSIP_INV_STATE_DISCONNECTED and immediately destroys +the INVITE session. +At the same time this INVITE session could being processed +on another thread. This thread could use the session's +memory pools which were already freed, so we get segfault. + +This patch adds a reference counter and new functions: +pjsip_inv_add_ref and pjsip_inv_dec_ref. +The INVITE session is destroyed only when the reference +counter has reached zero. + +To avoid race condition an application should call +pjsip_inv_add_ref/pjsip_inv_dec_ref. + +Index: pjsip/include/pjsip-ua/sip_inv.h +=================================================================== +--- a/pjsip/include/pjsip-ua/sip_inv.h (revision 5434) ++++ b/pjsip/include/pjsip-ua/sip_inv.h (revision 5435) +@@ -383,6 +383,11 @@ + * Other applications that want to use these pools must understand + * that the flip-flop pool's lifetimes are synchronized to the + * SDP offer-answer negotiation. ++ * ++ * The lifetime of this session is controlled by the reference counter in this ++ * structure, which is manipulated by calling #pjsip_inv_add_ref and ++ * #pjsip_inv_dec_ref. When the reference counter has reached zero, then ++ * this session will be destroyed. + */ + struct pjsip_inv_session + { +@@ -412,6 +417,7 @@ + struct pjsip_timer *timer; /**< Session Timers. */ + pj_bool_t following_fork; /**< Internal, following + forked media? */ ++ pj_atomic_t *ref_cnt; /**< Reference counter. */ + }; + + +@@ -631,6 +637,30 @@ + + + /** ++ * Add reference counter to the INVITE session. The reference counter controls ++ * the life time of the session, ie. when the counter reaches zero, then it ++ * will be destroyed. ++ * ++ * @param inv The INVITE session. ++ * @return PJ_SUCCESS if the INVITE session reference counter ++ * was increased. ++ */ ++PJ_DECL(pj_status_t) pjsip_inv_add_ref( pjsip_inv_session *inv ); ++ ++/** ++ * Decrement reference counter of the INVITE session. ++ * When the session is no longer used, it will be destroyed and ++ * caller is informed with PJ_EGONE return status. ++ * ++ * @param inv The INVITE session. ++ * @return PJ_SUCCESS if the INVITE session reference counter ++ * was decreased. A status PJ_EGONE will be returned to ++ * inform that session is destroyed. ++ */ ++PJ_DECL(pj_status_t) pjsip_inv_dec_ref( pjsip_inv_session *inv ); ++ ++ ++/** + * Forcefully terminate and destroy INVITE session, regardless of + * the state of the session. Note that this function should only be used + * when there is failure in the INVITE session creation. After the +Index: pjsip/src/pjsip-ua/sip_inv.c +=================================================================== +--- a/pjsip/src/pjsip-ua/sip_inv.c (revision 5434) ++++ b/pjsip/src/pjsip-ua/sip_inv.c (revision 5435) +@@ -195,6 +195,65 @@ + } + + /* ++ * Add reference to INVITE session. ++ */ ++PJ_DEF(pj_status_t) pjsip_inv_add_ref( pjsip_inv_session *inv ) ++{ ++ PJ_ASSERT_RETURN(inv && inv->ref_cnt, PJ_EINVAL); ++ ++ pj_atomic_inc(inv->ref_cnt); ++ ++ return PJ_SUCCESS; ++} ++ ++static void inv_session_destroy(pjsip_inv_session *inv) ++{ ++ if (inv->last_ack) { ++ pjsip_tx_data_dec_ref(inv->last_ack); ++ inv->last_ack = NULL; ++ } ++ if (inv->invite_req) { ++ pjsip_tx_data_dec_ref(inv->invite_req); ++ inv->invite_req = NULL; ++ } ++ if (inv->pending_bye) { ++ pjsip_tx_data_dec_ref(inv->pending_bye); ++ inv->pending_bye = NULL; ++ } ++ pjsip_100rel_end_session(inv); ++ pjsip_timer_end_session(inv); ++ pjsip_dlg_dec_session(inv->dlg, &mod_inv.mod); ++ ++ /* Release the flip-flop pools */ ++ pj_pool_release(inv->pool_prov); ++ inv->pool_prov = NULL; ++ pj_pool_release(inv->pool_active); ++ inv->pool_active = NULL; ++ ++ pj_atomic_destroy(inv->ref_cnt); ++ inv->ref_cnt = NULL; ++} ++ ++/* ++ * Decrease INVITE session reference, destroy it when the reference count ++ * reaches zero. ++ */ ++PJ_DEF(pj_status_t) pjsip_inv_dec_ref( pjsip_inv_session *inv ) ++{ ++ pj_atomic_value_t ref_cnt; ++ ++ PJ_ASSERT_RETURN(inv && inv->ref_cnt, PJ_EINVAL); ++ ++ ref_cnt = pj_atomic_dec_and_get(inv->ref_cnt); ++ pj_assert( ref_cnt >= 0); ++ if (ref_cnt == 0) { ++ inv_session_destroy(inv); ++ return PJ_EGONE; ++ } ++ return PJ_SUCCESS; ++} ++ ++/* + * Set session state. + */ + static void inv_set_state(pjsip_inv_session *inv, pjsip_inv_state state, +@@ -261,27 +320,7 @@ + if (inv->state == PJSIP_INV_STATE_DISCONNECTED && + prev_state != PJSIP_INV_STATE_DISCONNECTED) + { +- if (inv->last_ack) { +- pjsip_tx_data_dec_ref(inv->last_ack); +- inv->last_ack = NULL; +- } +- if (inv->invite_req) { +- pjsip_tx_data_dec_ref(inv->invite_req); +- inv->invite_req = NULL; +- } +- if (inv->pending_bye) { +- pjsip_tx_data_dec_ref(inv->pending_bye); +- inv->pending_bye = NULL; +- } +- pjsip_100rel_end_session(inv); +- pjsip_timer_end_session(inv); +- pjsip_dlg_dec_session(inv->dlg, &mod_inv.mod); +- +- /* Release the flip-flop pools */ +- pj_pool_release(inv->pool_prov); +- inv->pool_prov = NULL; +- pj_pool_release(inv->pool_active); +- inv->pool_active = NULL; ++ pjsip_inv_dec_ref(inv); + } + } + +@@ -838,6 +877,12 @@ + inv = PJ_POOL_ZALLOC_T(dlg->pool, pjsip_inv_session); + pj_assert(inv != NULL); + ++ status = pj_atomic_create(dlg->pool, 0, &inv->ref_cnt); ++ if (status != PJ_SUCCESS) { ++ pjsip_dlg_dec_lock(dlg); ++ return status; ++ } ++ + inv->pool = dlg->pool; + inv->role = PJSIP_ROLE_UAC; + inv->state = PJSIP_INV_STATE_NULL; +@@ -881,6 +926,7 @@ + pjsip_100rel_attach(inv); + + /* Done */ ++ pjsip_inv_add_ref(inv); + *p_inv = inv; + + pjsip_dlg_dec_lock(dlg); +@@ -1471,6 +1517,12 @@ + inv = PJ_POOL_ZALLOC_T(dlg->pool, pjsip_inv_session); + pj_assert(inv != NULL); + ++ status = pj_atomic_create(dlg->pool, 0, &inv->ref_cnt); ++ if (status != PJ_SUCCESS) { ++ pjsip_dlg_dec_lock(dlg); ++ return status; ++ } ++ + inv->pool = dlg->pool; + inv->role = PJSIP_ROLE_UAS; + inv->state = PJSIP_INV_STATE_NULL; +@@ -1540,6 +1592,7 @@ + } + + /* Done */ ++ pjsip_inv_add_ref(inv); + pjsip_dlg_dec_lock(dlg); + *p_inv = inv; + Added: branches/1.0/package/pjsip/pjsip-0003-r5403-pjsip_IPV6_V6ONLY.patch =================================================================== --- branches/1.0/package/pjsip/pjsip-0003-r5403-pjsip_IPV6_V6ONLY.patch (rev 0) +++ branches/1.0/package/pjsip/pjsip-0003-r5403-pjsip_IPV6_V6ONLY.patch 2016-11-05 17:14:41 UTC (rev 7930) @@ -0,0 +1,13 @@ +--- a/pjlib/src/pj/sock_bsd.c ++++ b/pjlib/src/pj/sock_bsd.c +@@ -539,6 +539,10 @@ + pj_sock_setsockopt(*sock, pj_SOL_SOCKET(), pj_SO_NOSIGPIPE(), + &val, sizeof(val)); + } ++ if (af != PJ_AF_INET) { /* Linux Kernel 2.4.21; June 2003 */ ++ pj_sock_setsockopt(*sock, PJ_SOL_IPV6, IPV6_V6ONLY, ++ &val, sizeof(val)); ++ } + #if defined(PJ_IPHONE_OS_HAS_MULTITASKING_SUPPORT) && \ + PJ_IPHONE_OS_HAS_MULTITASKING_SUPPORT!=0 + if (type == pj_SOCK_DGRAM()) { Added: branches/1.0/package/pjsip/pjsip-0004-resolver.c-Prevent-SERVFAIL-from-marking-name-server.patch =================================================================== --- branches/1.0/package/pjsip/pjsip-0004-resolver.c-Prevent-SERVFAIL-from-marking-name-server.patch (rev 0) +++ branches/1.0/package/pjsip/pjsip-0004-resolver.c-Prevent-SERVFAIL-from-marking-name-server.patch 2016-11-05 17:14:41 UTC (rev 7930) @@ -0,0 +1,48 @@ +From a5efddbe9151e9ad99279e59566c86f8bc27d3a9 Mon Sep 17 00:00:00 2001 +From: George Joseph <gj...@di...> +Date: Wed, 7 Sep 2016 13:10:57 -0600 +Subject: [PATCH] resolver.c: Prevent SERVFAIL from marking name server bad + +A name server that returns "Server Failure" is indicating only that +the server couldn't process that particular request. We should NOT +assume that the name server is incapable of serving other requests. + +Here's the scenario we've been encountering... + +* 2 local name servers configured in resolv.conf. +* An OPTIONS request causes a request for A and AAAA records to go out + to both nameservers. +* The A responses both come back successfully resolved. +* Because of an issue at some upstream nameserver, the AAAA responses + for that particular query come back as "SERVFAIL" from both local + name servers. +* Both local servers are marked as bad and no further queries can be + sent until the 60 second ttl expires. Only previously cached results + can be used. +* In this case, 60 seconds is just enough time for another OPTIONS + request to go out to the same host so the cycle repeats. + +We could set the bad ttl really low but that also affects REFUSED and +NOTAUTH which probably DO signal a real server issue. Besides, even +a really low bad ttl would be an issue on a pbx. +--- + pjlib-util/src/pjlib-util/resolver.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/pjlib-util/src/pjlib-util/resolver.c b/pjlib-util/src/pjlib-util/resolver.c +index d277e4f..540f88f 100644 +--- a/pjlib-util/src/pjlib-util/resolver.c ++++ b/pjlib-util/src/pjlib-util/resolver.c +@@ -1384,8 +1384,7 @@ static void report_nameserver_status(pj_dns_resolver *resolver, + q_id = (pj_uint32_t)-1; + } + +- if (!pkt || rcode == PJ_DNS_RCODE_SERVFAIL || +- rcode == PJ_DNS_RCODE_REFUSED || ++ if (!pkt || rcode == PJ_DNS_RCODE_REFUSED || + rcode == PJ_DNS_RCODE_NOTAUTH) + { + is_good = PJ_FALSE; +-- +2.7.4 + Added: branches/1.0/package/pjsip/pjsip-0005-Re-1969-Fix-crash-on-using-an-already-destroyed-SSL-.patch =================================================================== --- branches/1.0/package/pjsip/pjsip-0005-Re-1969-Fix-crash-on-using-an-already-destroyed-SSL-.patch (rev 0) +++ branches/1.0/package/pjsip/pjsip-0005-Re-1969-Fix-crash-on-using-an-already-destroyed-SSL-.patch 2016-11-05 17:14:41 UTC (rev 7930) @@ -0,0 +1,164 @@ +From 9e67e0d5c3fdc747530a956038b374fca4748b76 Mon Sep 17 00:00:00 2001 +From: riza <riza@localhost> +Date: Thu, 13 Oct 2016 09:02:50 +0000 +Subject: [PATCH 1/4] Re #1969: Fix crash on using an already destroyed SSL + socket. + +--- + pjlib/src/pj/ssl_sock_ossl.c | 66 ++++++++++++++++++++++++++++---------------- + 1 file changed, 42 insertions(+), 24 deletions(-) + +diff --git a/pjlib/src/pj/ssl_sock_ossl.c b/pjlib/src/pj/ssl_sock_ossl.c +index fa0db2d..ceab67a 100644 +--- a/pjlib/src/pj/ssl_sock_ossl.c ++++ b/pjlib/src/pj/ssl_sock_ossl.c +@@ -822,7 +822,10 @@ static void close_sockets(pj_ssl_sock_t *ssock) + pj_lock_acquire(ssock->write_mutex); + asock = ssock->asock; + if (asock) { +- ssock->asock = NULL; ++ // Don't set ssock->asock to NULL, as it may trigger assertion in ++ // send operation. This should be safe as active socket will simply ++ // return PJ_EINVALIDOP on any operation if it is already closed. ++ //ssock->asock = NULL; + ssock->sock = PJ_INVALID_SOCKET; + } + sock = ssock->sock; +@@ -841,9 +844,9 @@ static void close_sockets(pj_ssl_sock_t *ssock) + /* Reset SSL socket state */ + static void reset_ssl_sock_state(pj_ssl_sock_t *ssock) + { ++ pj_lock_acquire(ssock->write_mutex); + ssock->ssl_state = SSL_STATE_NULL; +- +- destroy_ssl(ssock); ++ pj_lock_release(ssock->write_mutex); + + close_sockets(ssock); + +@@ -1612,6 +1615,21 @@ static pj_status_t do_handshake(pj_ssl_sock_t *ssock) + return PJ_EPENDING; + } + ++static void ssl_on_destroy(void *arg) ++{ ++ pj_pool_t *pool = NULL; ++ pj_ssl_sock_t *ssock = (pj_ssl_sock_t*)arg; ++ ++ destroy_ssl(ssock); ++ ++ pj_lock_destroy(ssock->write_mutex); ++ ++ pool = ssock->pool; ++ ssock->pool = NULL; ++ if (pool) ++ pj_pool_release(pool); ++} ++ + + /* + ******************************************************************* +@@ -1830,7 +1848,7 @@ static pj_bool_t asock_on_accept_complete (pj_activesock_t *asock, + + /* Create new SSL socket instance */ + status = pj_ssl_sock_create(ssock_parent->pool, +- &ssock_parent->newsock_param, &ssock); ++ &ssock_parent->newsock_param, &ssock); + if (status != PJ_SUCCESS) + goto on_return; + +@@ -1906,12 +1924,10 @@ static pj_bool_t asock_on_accept_complete (pj_activesock_t *asock, + if (status != PJ_SUCCESS) + goto on_return; + +- /* Temporarily add ref the group lock until active socket creation, +- * to make sure that group lock is destroyed if the active socket +- * creation fails. +- */ + pj_grp_lock_add_ref(glock); + asock_cfg.grp_lock = ssock->param.grp_lock = glock; ++ pj_grp_lock_add_handler(ssock->param.grp_lock, ssock->pool, ssock, ++ ssl_on_destroy); + } + + pj_bzero(&asock_cb, sizeof(asock_cb)); +@@ -1927,11 +1943,6 @@ static pj_bool_t asock_on_accept_complete (pj_activesock_t *asock, + ssock, + &ssock->asock); + +- /* This will destroy the group lock if active socket creation fails */ +- if (asock_cfg.grp_lock) { +- pj_grp_lock_dec_ref(asock_cfg.grp_lock); +- } +- + if (status != PJ_SUCCESS) + goto on_return; + +@@ -2251,17 +2262,26 @@ PJ_DEF(pj_status_t) pj_ssl_sock_create (pj_pool_t *pool, + /* Create secure socket mutex */ + status = pj_lock_create_recursive_mutex(pool, pool->obj_name, + &ssock->write_mutex); +- if (status != PJ_SUCCESS) ++ if (status != PJ_SUCCESS) { ++ pj_pool_release(pool); + return status; ++ } + + /* Init secure socket param */ + pj_ssl_sock_param_copy(pool, &ssock->param, param); ++ ++ if (ssock->param.grp_lock) { ++ pj_grp_lock_add_ref(ssock->param.grp_lock); ++ pj_grp_lock_add_handler(ssock->param.grp_lock, pool, ssock, ++ ssl_on_destroy); ++ } ++ + ssock->param.read_buffer_size = ((ssock->param.read_buffer_size+7)>>3)<<3; + if (!ssock->param.timer_heap) { + PJ_LOG(3,(ssock->pool->obj_name, "Warning: timer heap is not " + "available. It is recommended to supply one to avoid " +- "a race condition if more than one worker threads " +- "are used.")); ++ "a race condition if more than one worker threads " ++ "are used.")); + } + + /* Finally */ +@@ -2277,8 +2297,6 @@ PJ_DEF(pj_status_t) pj_ssl_sock_create (pj_pool_t *pool, + */ + PJ_DEF(pj_status_t) pj_ssl_sock_close(pj_ssl_sock_t *ssock) + { +- pj_pool_t *pool; +- + PJ_ASSERT_RETURN(ssock, PJ_EINVAL); + + if (!ssock->pool) +@@ -2290,12 +2308,11 @@ PJ_DEF(pj_status_t) pj_ssl_sock_close(pj_ssl_sock_t *ssock) + } + + reset_ssl_sock_state(ssock); +- pj_lock_destroy(ssock->write_mutex); +- +- pool = ssock->pool; +- ssock->pool = NULL; +- if (pool) +- pj_pool_release(pool); ++ if (ssock->param.grp_lock) { ++ pj_grp_lock_dec_ref(ssock->param.grp_lock); ++ } else { ++ ssl_on_destroy(ssock); ++ } + + return PJ_SUCCESS; + } +@@ -2782,6 +2799,7 @@ pj_ssl_sock_start_accept2(pj_ssl_sock_t *ssock, + + /* Start accepting */ + pj_ssl_sock_param_copy(pool, &ssock->newsock_param, newsock_param); ++ ssock->newsock_param.grp_lock = NULL; + status = pj_activesock_start_accept(ssock->asock, pool); + if (status != PJ_SUCCESS) + goto on_error; +-- +2.7.4 + Added: branches/1.0/package/pjsip/pjsip-0006-r5471-svn-backport-Various-fixes-for-DNS-IPv6.patch =================================================================== --- branches/1.0/package/pjsip/pjsip-0006-r5471-svn-backport-Various-fixes-for-DNS-IPv6.patch (rev 0) +++ branches/1.0/package/pjsip/pjsip-0006-r5471-svn-backport-Various-fixes-for-DNS-IPv6.patch 2016-11-05 17:14:41 UTC (rev 7930) @@ -0,0 +1,134 @@ +From 2ab7a9f67caf73be3f2215473f72882cfaef4972 Mon Sep 17 00:00:00 2001 +From: Richard Mudgett <rmu...@di...> +Date: Fri, 28 Oct 2016 12:11:30 -0500 +Subject: [PATCH 1/3] r5471 svn backport Various fixes for DNS IPv6 + +Fixed #1974: Various fixes for DNS IPv6 +--- + pjlib-util/src/pjlib-util/resolver.c | 11 +++++------ + pjlib-util/src/pjlib-util/srv_resolver.c | 17 +++++++++++++++-- + pjsip/src/pjsip/sip_resolve.c | 14 +++++++------- + 3 files changed, 27 insertions(+), 15 deletions(-) + +diff --git a/pjlib-util/src/pjlib-util/resolver.c b/pjlib-util/src/pjlib-util/resolver.c +index e5e1bed..d24ef9d 100644 +--- a/pjlib-util/src/pjlib-util/resolver.c ++++ b/pjlib-util/src/pjlib-util/resolver.c +@@ -835,7 +835,7 @@ PJ_DEF(pj_status_t) pj_dns_resolver_start_query( pj_dns_resolver *resolver, + pj_time_val now; + struct res_key key; + struct cached_res *cache; +- pj_dns_async_query *q; ++ pj_dns_async_query *q, *p_q = NULL; + pj_uint32_t hval; + pj_status_t status = PJ_SUCCESS; + +@@ -849,9 +849,6 @@ PJ_DEF(pj_status_t) pj_dns_resolver_start_query( pj_dns_resolver *resolver, + /* Check type */ + PJ_ASSERT_RETURN(type > 0 && type < 0xFFFF, PJ_EINVAL); + +- if (p_query) +- *p_query = NULL; +- + /* Build resource key for looking up hash tables */ + init_res_key(&key, type, name); + +@@ -970,10 +967,12 @@ PJ_DEF(pj_status_t) pj_dns_resolver_start_query( pj_dns_resolver *resolver, + pj_hash_set_np(resolver->hquerybyres, &q->key, sizeof(q->key), + 0, q->hbufkey, q); + +- if (p_query) +- *p_query = q; ++ p_q = q; + + on_return: ++ if (p_query) ++ *p_query = p_q; ++ + pj_mutex_unlock(resolver->mutex); + return status; + } +diff --git a/pjlib-util/src/pjlib-util/srv_resolver.c b/pjlib-util/src/pjlib-util/srv_resolver.c +index 02672aa..ff9c979 100644 +--- a/pjlib-util/src/pjlib-util/srv_resolver.c ++++ b/pjlib-util/src/pjlib-util/srv_resolver.c +@@ -187,9 +187,12 @@ PJ_DEF(pj_status_t) pj_dns_srv_cancel_query(pj_dns_srv_async_query *query, + has_pending = PJ_TRUE; + } + if (srv->q_aaaa) { +- pj_dns_resolver_cancel_query(srv->q_aaaa, PJ_FALSE); ++ /* Check if it is a dummy query. */ ++ if (srv->q_aaaa != (pj_dns_async_query*)0x1) { ++ pj_dns_resolver_cancel_query(srv->q_aaaa, PJ_FALSE); ++ has_pending = PJ_TRUE; ++ } + srv->q_aaaa = NULL; +- has_pending = PJ_TRUE; + } + } + +@@ -485,12 +488,22 @@ static pj_status_t resolve_hostnames(pj_dns_srv_async_query *query_job) + srv->common.type = PJ_DNS_TYPE_A; + srv->common_aaaa.type = PJ_DNS_TYPE_AAAA; + srv->parent = query_job; ++ srv->q_a = NULL; ++ srv->q_aaaa = NULL; + + status = PJ_SUCCESS; + + /* Start DNA A record query */ + if ((query_job->option & PJ_DNS_SRV_RESOLVE_AAAA_ONLY) == 0) + { ++ if ((query_job->option & PJ_DNS_SRV_RESOLVE_AAAA) != 0) { ++ /* If there will be DNS AAAA query too, let's setup ++ * a dummy one here, otherwise app callback may be called ++ * immediately (before DNS AAAA query is sent) when ++ * DNS A record is available in the cache. ++ */ ++ srv->q_aaaa = (pj_dns_async_query*)0x1; ++ } + status = pj_dns_resolver_start_query(query_job->resolver, + &srv->target_name, + PJ_DNS_TYPE_A, 0, +diff --git a/pjsip/src/pjsip/sip_resolve.c b/pjsip/src/pjsip/sip_resolve.c +index ed326ba..3f3654d 100644 +--- a/pjsip/src/pjsip/sip_resolve.c ++++ b/pjsip/src/pjsip/sip_resolve.c +@@ -452,7 +452,7 @@ PJ_DEF(void) pjsip_resolve( pjsip_resolver_t *resolver, + } + + /* Resolve DNS AAAA record if address family is not fixed to IPv4 */ +- if (af != pj_AF_INET()) { ++ if (af != pj_AF_INET() && status == PJ_SUCCESS) { + status = pj_dns_resolver_start_query(resolver->res, + &query->naptr[0].name, + PJ_DNS_TYPE_AAAA, 0, +@@ -530,9 +530,9 @@ static void dns_a_callback(void *user_data, + + ++srv->count; + } +- +- } else { +- ++ } ++ ++ if (status != PJ_SUCCESS) { + char errmsg[PJ_ERR_MSG_SIZE]; + + /* Log error */ +@@ -593,9 +593,9 @@ static void dns_aaaa_callback(void *user_data, + + ++srv->count; + } +- +- } else { +- ++ } ++ ++ if (status != PJ_SUCCESS) { + char errmsg[PJ_ERR_MSG_SIZE]; + + /* Log error */ +-- +1.7.9.5 + Added: branches/1.0/package/pjsip/pjsip-0006-r5473-svn-backport-Fix-pending-query.patch =================================================================== --- branches/1.0/package/pjsip/pjsip-0006-r5473-svn-backport-Fix-pending-query.patch (rev 0) +++ branches/1.0/package/pjsip/pjsip-0006-r5473-svn-backport-Fix-pending-query.patch 2016-11-05 17:14:41 UTC (rev 7930) @@ -0,0 +1,28 @@ +From 509d4339747f11cfbde3a0acc447ef5d521eea93 Mon Sep 17 00:00:00 2001 +From: Richard Mudgett <rmu...@di...> +Date: Fri, 28 Oct 2016 12:12:28 -0500 +Subject: [PATCH 2/3] r5473 svn backport Fix pending query + +Re #1974: +If there is a pending query, set the return value to that query (instead of NULL) + +Thanks to Richard Mudgett for the patch. +--- + pjlib-util/src/pjlib-util/resolver.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/pjlib-util/src/pjlib-util/resolver.c b/pjlib-util/src/pjlib-util/resolver.c +index d24ef9d..fe687b7 100644 +--- a/pjlib-util/src/pjlib-util/resolver.c ++++ b/pjlib-util/src/pjlib-util/resolver.c +@@ -940,6 +940,7 @@ PJ_DEF(pj_status_t) pj_dns_resolver_start_query( pj_dns_resolver *resolver, + /* Done. This child query will be notified once the "parent" + * query completes. + */ ++ p_q = nq; + status = PJ_SUCCESS; + goto on_return; + } +-- +1.7.9.5 + Added: branches/1.0/package/pjsip/pjsip-0006-r5475-svn-backport-Remove-DNS-cache-entry.patch =================================================================== --- branches/1.0/package/pjsip/pjsip-0006-r5475-svn-backport-Remove-DNS-cache-entry.patch (rev 0) +++ branches/1.0/package/pjsip/pjsip-0006-r5475-svn-backport-Remove-DNS-cache-entry.patch 2016-11-05 17:14:41 UTC (rev 7930) @@ -0,0 +1,70 @@ +From 46e1cfa18853a38b7fcdebad782710c5db676657 Mon Sep 17 00:00:00 2001 +From: Richard Mudgett <rmu...@di...> +Date: Fri, 28 Oct 2016 12:15:44 -0500 +Subject: [PATCH 3/3] r5475 svn backport Remove DNS cache entry + +Re #1974: Remove DNS cache entry from resolver's hash table when app callback has a reference. + +Thanks to Richard Mudgett for the patch. +--- + pjlib-util/src/pjlib-util/resolver.c | 29 +++++++++++++++-------------- + 1 file changed, 15 insertions(+), 14 deletions(-) + +diff --git a/pjlib-util/src/pjlib-util/resolver.c b/pjlib-util/src/pjlib-util/resolver.c +index fe687b7..52b7655 100644 +--- a/pjlib-util/src/pjlib-util/resolver.c ++++ b/pjlib-util/src/pjlib-util/resolver.c +@@ -1444,10 +1444,12 @@ static void update_res_cache(pj_dns_resolver *resolver, + if (ttl > resolver->settings.cache_max_ttl) + ttl = resolver->settings.cache_max_ttl; + ++ /* Get a cache response entry */ ++ cache = (struct cached_res *) pj_hash_get(resolver->hrescache, key, ++ sizeof(*key), &hval); ++ + /* If TTL is zero, clear the same entry in the hash table */ + if (ttl == 0) { +- cache = (struct cached_res *) pj_hash_get(resolver->hrescache, key, +- sizeof(*key), &hval); + /* Remove the entry before releasing its pool (see ticket #1710) */ + pj_hash_set(NULL, resolver->hrescache, key, sizeof(*key), hval, NULL); + +@@ -1457,24 +1459,23 @@ static void update_res_cache(pj_dns_resolver *resolver, + return; + } + +- /* Get a cache response entry */ +- cache = (struct cached_res *) pj_hash_get(resolver->hrescache, key, +- sizeof(*key), &hval); + if (cache == NULL) { + cache = alloc_entry(resolver); +- } else if (cache->ref_cnt > 1) { +- /* When cache entry is being used by callback (to app), just decrement +- * ref_cnt so it will be freed after the callback returns and allocate +- * new entry. +- */ +- cache->ref_cnt--; +- cache = alloc_entry(resolver); + } else { + /* Remove the entry before resetting its pool (see ticket #1710) */ + pj_hash_set(NULL, resolver->hrescache, key, sizeof(*key), hval, NULL); + +- /* Reset cache to avoid bloated cache pool */ +- reset_entry(&cache); ++ if (cache->ref_cnt > 1) { ++ /* When cache entry is being used by callback (to app), ++ * just decrement ref_cnt so it will be freed after ++ * the callback returns and allocate new entry. ++ */ ++ cache->ref_cnt--; ++ cache = alloc_entry(resolver); ++ } else { ++ /* Reset cache to avoid bloated cache pool */ ++ reset_entry(&cache); ++ } + } + + /* Duplicate the packet. +-- +1.7.9.5 + Added: branches/1.0/package/pjsip/pjsip-0006-r5477-svn-backport-Fix-DNS-write-on-freed-memory.patch =================================================================== --- branches/1.0/package/pjsip/pjsip-0006-r5477-svn-backport-Fix-DNS-write-on-freed-memory.patch (rev 0) +++ branches/1.0/package/pjsip/pjsip-0006-r5477-svn-backport-Fix-DNS-write-on-freed-memory.patch 2016-11-05 17:14:41 UTC (rev 7930) @@ -0,0 +1,33 @@ +From 732a997010d60fe93a7453e809672386749b0afc Mon Sep 17 00:00:00 2001 +From: Richard Mudgett <rmu...@di...> +Date: Tue, 1 Nov 2016 12:55:31 -0500 +Subject: [PATCH] r5477 svn backport Fix DNS write on freed memory. + +Re #1974: Fix DNS write on freed memory. +Thanks to Richard Mudgett for the patch. +--- + pjlib-util/src/pjlib-util/resolver.c | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/pjlib-util/src/pjlib-util/resolver.c b/pjlib-util/src/pjlib-util/resolver.c +index 52b7655..365772e 100644 +--- a/pjlib-util/src/pjlib-util/resolver.c ++++ b/pjlib-util/src/pjlib-util/resolver.c +@@ -908,7 +908,13 @@ PJ_DEF(pj_status_t) pj_dns_resolver_start_query( pj_dns_resolver *resolver, + /* Must return PJ_SUCCESS */ + status = PJ_SUCCESS; + +- goto on_return; ++ /* ++ * We cannot write to *p_query after calling cb because what ++ * p_query points to may have been freed by cb. ++ * Refer to ticket #1974. ++ */ ++ pj_mutex_unlock(resolver->mutex); ++ return status; + } + + /* At this point, we have a cached entry, but this entry has expired. +-- +1.7.9.5 + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <abe...@us...> - 2016-11-14 16:52:34
|
Revision: 7956 http://sourceforge.net/p/astlinux/code/7956 Author: abelbeck Date: 2016-11-14 16:52:32 +0000 (Mon, 14 Nov 2016) Log Message: ----------- strongswan, add AIF support for 'ipsec' VPN type, keep both racoon and strongswan from running at the same time Modified Paths: -------------- branches/1.0/package/arnofw/arnofw.serial branches/1.0/package/arnofw/arnofw.wrapper branches/1.0/package/arnofw/ipsec-vpn-astlinux.conf branches/1.0/package/ipsec-tools/racoon.init branches/1.0/package/strongswan/ipsec.init Modified: branches/1.0/package/arnofw/arnofw.serial =================================================================== --- branches/1.0/package/arnofw/arnofw.serial 2016-11-13 21:41:18 UTC (rev 7955) +++ branches/1.0/package/arnofw/arnofw.serial 2016-11-14 16:52:32 UTC (rev 7956) @@ -1 +1 @@ -0002~0028~0000~0000~0000~ +0002~0029~0000~0000~0000~ Modified: branches/1.0/package/arnofw/arnofw.wrapper =================================================================== --- branches/1.0/package/arnofw/arnofw.wrapper 2016-11-13 21:41:18 UTC (rev 7955) +++ branches/1.0/package/arnofw/arnofw.wrapper 2016-11-14 16:52:32 UTC (rev 7956) @@ -233,7 +233,7 @@ EXTERNAL_DHCP_SERVER=1 fi - if isVPNtype racoon || isVPNtype ipsecmobile; then + if isVPNtype racoon || isVPNtype ipsecmobile || isVPNtype ipsec; then RP_FILTER=0 fi Modified: branches/1.0/package/arnofw/ipsec-vpn-astlinux.conf =================================================================== --- branches/1.0/package/arnofw/ipsec-vpn-astlinux.conf 2016-11-13 21:41:18 UTC (rev 7955) +++ branches/1.0/package/arnofw/ipsec-vpn-astlinux.conf 2016-11-14 16:52:32 UTC (rev 7956) @@ -20,12 +20,14 @@ IPSEC_NAT_TRAVERSAL=0 vpntype_racoon=0 vpntype_ipsecmobile=0 + vpntype_ipsec=0 unset IFS for vpntype in $VPN; do case $vpntype in racoon) vpntype_racoon=1 ;; ipsecmobile) vpntype_ipsecmobile=1 ;; + ipsec) vpntype_ipsec=1 ;; esac done @@ -63,5 +65,12 @@ fi fi + if [ $vpntype_ipsec -eq 1 ]; then + ENABLED=1 + IPSEC_ALLOWED_HOSTS="0/0" + IPSEC_VPN_NETS="" + IPSEC_NAT_TRAVERSAL=1 + fi + unset IFS Modified: branches/1.0/package/ipsec-tools/racoon.init =================================================================== --- branches/1.0/package/ipsec-tools/racoon.init 2016-11-13 21:41:18 UTC (rev 7955) +++ branches/1.0/package/ipsec-tools/racoon.init 2016-11-14 16:52:32 UTC (rev 7956) @@ -11,25 +11,23 @@ start() { + if SYS_is_vpn_type racoon || SYS_is_vpn_type ipsecmobile; then - if SYS_is_vpn_type racoon || \ - SYS_is_vpn_type ipsecmobile; then + ## Stop strongSwan IPsec if it is running + if [ -f /etc/init.d/ipsec -a -f /var/run/charon.pid ]; then + service ipsec stop + fi /usr/sbin/racoon-ipsec start - fi - } stop() { - if [ -f /tmp/etc/racoon.conf ]; then /usr/sbin/racoon-ipsec stop - fi - } case $1 in Modified: branches/1.0/package/strongswan/ipsec.init =================================================================== --- branches/1.0/package/strongswan/ipsec.init 2016-11-13 21:41:18 UTC (rev 7955) +++ branches/1.0/package/strongswan/ipsec.init 2016-11-14 16:52:32 UTC (rev 7956) @@ -6,8 +6,8 @@ PIDFILE="/var/run/charon.pid" -init () { - +init () +{ if ! SYS_is_vpn_type ipsec; then exit fi @@ -33,7 +33,16 @@ start () { if SYS_is_vpn_type ipsec; then + if SYS_is_vpn_type racoon || SYS_is_vpn_type ipsecmobile; then + echo "Failed starting strongSwan IPsec, racoon IPsec is also enabled." >&2 + exit 1 + fi + ## Stop racoon IPsec if it is running + if [ -f /etc/init.d/racoon -a -f /var/run/racoon.pid ]; then + service racoon stop + fi + /usr/sbin/ipsec start >/dev/null fi } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <abe...@us...> - 2016-11-24 17:15:07
|
Revision: 7980 http://sourceforge.net/p/astlinux/code/7980 Author: abelbeck Date: 2016-11-24 17:15:05 +0000 (Thu, 24 Nov 2016) Log Message: ----------- asterisk, version bump to 11.25.0 and 13.13.0 Modified Paths: -------------- branches/1.0/package/asterisk/asterisk-13-configure-menuselect-cross-fix.patch branches/1.0/package/asterisk/asterisk.mk branches/1.0/package/pjsip/asterisk-config_site.h Modified: branches/1.0/package/asterisk/asterisk-13-configure-menuselect-cross-fix.patch =================================================================== --- branches/1.0/package/asterisk/asterisk-13-configure-menuselect-cross-fix.patch 2016-11-23 21:53:22 UTC (rev 7979) +++ branches/1.0/package/asterisk/asterisk-13-configure-menuselect-cross-fix.patch 2016-11-24 17:15:05 UTC (rev 7980) @@ -1,6 +1,6 @@ --- asterisk-13/configure.ac.orig 2014-01-24 16:52:23.000000000 -0600 +++ asterisk-13/configure.ac 2014-01-24 16:55:14.000000000 -0600 -@@ -2652,11 +2652,13 @@ +@@ -2662,11 +2662,13 @@ AC_OUTPUT ${ac_cv_path_EGREP} 'CURSES|GTK2|OSARCH|NEWT' makeopts > makeopts.acbak2 Modified: branches/1.0/package/asterisk/asterisk.mk =================================================================== --- branches/1.0/package/asterisk/asterisk.mk 2016-11-23 21:53:22 UTC (rev 7979) +++ branches/1.0/package/asterisk/asterisk.mk 2016-11-24 17:15:05 UTC (rev 7980) @@ -4,10 +4,10 @@ # ############################################################## ifeq ($(BR2_PACKAGE_ASTERISK_v11),y) -ASTERISK_VERSION := 11.24.1 +ASTERISK_VERSION := 11.25.0 else ifeq ($(BR2_PACKAGE_ASTERISK_v13),y) -ASTERISK_VERSION := 13.12.2 +ASTERISK_VERSION := 13.13.0 else ASTERISK_VERSION := 15.0.0 endif Modified: branches/1.0/package/pjsip/asterisk-config_site.h =================================================================== --- branches/1.0/package/pjsip/asterisk-config_site.h 2016-11-23 21:53:22 UTC (rev 7979) +++ branches/1.0/package/pjsip/asterisk-config_site.h 2016-11-24 17:15:05 UTC (rev 7980) @@ -48,7 +48,7 @@ /* Defaults too low for WebRTC */ #define PJ_ICE_MAX_CAND 32 -#define PJ_ICE_MAX_CHECKS (PJ_ICE_MAX_CAND * 2) +#define PJ_ICE_MAX_CHECKS (PJ_ICE_MAX_CAND * PJ_ICE_MAX_CAND) /* Increase limits to allow more formats */ #define PJMEDIA_MAX_SDP_FMT 64 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <abe...@us...> - 2016-11-25 19:01:08
|
Revision: 7983 http://sourceforge.net/p/astlinux/code/7983 Author: abelbeck Date: 2016-11-25 19:01:06 +0000 (Fri, 25 Nov 2016) Log Message: ----------- Build system tweaks for BR2_PACKAGE_LIBCAP enabled, avahi needs 'ac_cv_func_chroot=no' else with libcap enabled it starts a chroot helper, which works but the default 'rlimit-nproc=3' is exceeded since we share the 'nobody' user with other processes, resulting in 'avahi-daemon' not starting without a --no-rlimits option or commented out 'rlimit-nproc=3' Modified Paths: -------------- branches/1.0/package/asterisk/asterisk.mk branches/1.0/package/avahi/avahi.mk branches/1.0/package/ntp/ntp.mk Modified: branches/1.0/package/asterisk/asterisk.mk =================================================================== --- branches/1.0/package/asterisk/asterisk.mk 2016-11-25 15:03:04 UTC (rev 7982) +++ branches/1.0/package/asterisk/asterisk.mk 2016-11-25 19:01:06 UTC (rev 7983) @@ -49,6 +49,12 @@ ASTERISK_CONFIGURE_ARGS+= \ --without-sdl +ifeq ($(strip $(BR2_PACKAGE_LIBCAP)),y) +ASTERISK_EXTRAS+=libcap +ASTERISK_CONFIGURE_ARGS+= \ + --with-cap="$(STAGING_DIR)/usr" +endif + ifeq ($(strip $(BR2_PACKAGE_LIBXML2)),y) ASTERISK_EXTRAS+=libxml2 ASTERISK_CONFIGURE_ARGS+= \ Modified: branches/1.0/package/avahi/avahi.mk =================================================================== --- branches/1.0/package/avahi/avahi.mk 2016-11-25 15:03:04 UTC (rev 7982) +++ branches/1.0/package/avahi/avahi.mk 2016-11-25 19:01:06 UTC (rev 7983) @@ -10,6 +10,7 @@ AVAHI_INSTALL_STAGING = YES AVAHI_CONF_ENV = \ + ac_cv_func_chroot=no \ ac_cv_func_strtod=yes \ ac_fsusage_space=yes \ fu_cv_sys_stat_statfs2_bsize=yes \ Modified: branches/1.0/package/ntp/ntp.mk =================================================================== --- branches/1.0/package/ntp/ntp.mk 2016-11-25 15:03:04 UTC (rev 7982) +++ branches/1.0/package/ntp/ntp.mk 2016-11-25 19:01:06 UTC (rev 7983) @@ -29,6 +29,11 @@ NTP_CONF_OPT += --without-crypto endif +ifeq ($(BR2_PACKAGE_LIBCAP),y) +NTP_CONF_OPT += --enable-linuxcaps +NTP_DEPENDENCIES += libcap +endif + NTP_INSTALL_FILES_$(BR2_PACKAGE_NTP_NTP_KEYGEN) += util/ntp-keygen NTP_INSTALL_FILES_$(BR2_PACKAGE_NTP_NTP_WAIT) += scripts/ntp-wait/ntp-wait NTP_INSTALL_FILES_$(BR2_PACKAGE_NTP_NTPDATE) += ntpdate/ntpdate This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <abe...@us...> - 2016-11-25 21:37:22
|
Revision: 7985 http://sourceforge.net/p/astlinux/code/7985 Author: abelbeck Date: 2016-11-25 21:37:20 +0000 (Fri, 25 Nov 2016) Log Message: ----------- zoneinfo, version bump to 2016j and PHP_TIMEZONEDB 2016.10 Modified Paths: -------------- branches/1.0/package/php/php.mk branches/1.0/package/zoneinfo/zoneinfo.mk Modified: branches/1.0/package/php/php.mk =================================================================== --- branches/1.0/package/php/php.mk 2016-11-25 21:18:59 UTC (rev 7984) +++ branches/1.0/package/php/php.mk 2016-11-25 21:37:20 UTC (rev 7985) @@ -13,7 +13,7 @@ PHP_DEPENDENCIES = host-pkg-config ifeq ($(BR2_PACKAGE_PHP_EXT_TIMEZONEDB),y) -PHP_TIMEZONEDB_VERSION = 2016.9 +PHP_TIMEZONEDB_VERSION = 2016.10 PHP_TIMEZONEDB_SITE = http://files.astlinux-project.org PHP_TIMEZONEDB_SOURCE = timezonedb-$(PHP_TIMEZONEDB_VERSION).tar.gz Modified: branches/1.0/package/zoneinfo/zoneinfo.mk =================================================================== --- branches/1.0/package/zoneinfo/zoneinfo.mk 2016-11-25 21:18:59 UTC (rev 7984) +++ branches/1.0/package/zoneinfo/zoneinfo.mk 2016-11-25 21:37:20 UTC (rev 7985) @@ -3,7 +3,7 @@ # zoneinfo # ############################################################## -ZONEINFO_VERSION := 2016i +ZONEINFO_VERSION := 2016j ZONEINFO_DATA := tzdata$(ZONEINFO_VERSION).tar.gz ZONEINFO_SOURCE := tzcode$(ZONEINFO_VERSION).tar.gz ZONEINFO_SITE := http://www.iana.org/time-zones/repository/releases This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <abe...@us...> - 2017-01-02 21:45:41
|
Revision: 8067 http://sourceforge.net/p/astlinux/code/8067 Author: abelbeck Date: 2017-01-02 21:45:38 +0000 (Mon, 02 Jan 2017) Log Message: ----------- sqlite, version bump to 3.16 and sqliteodbc version bump to 0.9995 Modified Paths: -------------- branches/1.0/package/sqlite/sqlite.mk branches/1.0/package/sqliteodbc/sqliteodbc.mk Modified: branches/1.0/package/sqlite/sqlite.mk =================================================================== --- branches/1.0/package/sqlite/sqlite.mk 2017-01-02 21:25:18 UTC (rev 8066) +++ branches/1.0/package/sqlite/sqlite.mk 2017-01-02 21:45:38 UTC (rev 8067) @@ -4,9 +4,9 @@ # ############################################################# -SQLITE_VERSION = 3150200 +SQLITE_VERSION = 3160000 SQLITE_SOURCE = sqlite-autoconf-$(SQLITE_VERSION).tar.gz -SQLITE_SITE = http://www.sqlite.org/2016 +SQLITE_SITE = http://www.sqlite.org/2017 SQLITE_INSTALL_STAGING = YES SQLITE_CFLAGS += -DSQLITE_ENABLE_COLUMN_METADATA Modified: branches/1.0/package/sqliteodbc/sqliteodbc.mk =================================================================== --- branches/1.0/package/sqliteodbc/sqliteodbc.mk 2017-01-02 21:25:18 UTC (rev 8066) +++ branches/1.0/package/sqliteodbc/sqliteodbc.mk 2017-01-02 21:45:38 UTC (rev 8067) @@ -3,7 +3,7 @@ # sqliteodbc # ############################################################# -SQLITEODBC_VERSION = 0.9994 +SQLITEODBC_VERSION = 0.9995 SQLITEODBC_SOURCE = sqliteodbc-$(SQLITEODBC_VERSION).tar.gz SQLITEODBC_SITE = http://www.ch-werner.de/sqliteodbc SQLITEODBC_SUBDIR = sqliteodbc-$(SQLITEODBC_VERSION) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <abe...@us...> - 2017-01-20 17:59:51
|
Revision: 8111 http://sourceforge.net/p/astlinux/code/8111 Author: abelbeck Date: 2017-01-20 17:59:48 +0000 (Fri, 20 Jan 2017) Log Message: ----------- ddclient, add Cloudflare dynamic DNS service support Modified Paths: -------------- branches/1.0/package/ddclient/ddclient.conf branches/1.0/package/ddclient/dynamicdns.init branches/1.0/package/perl/perl.mk branches/1.0/package/webinterface/altweb/admin/network.php Added Paths: ----------- branches/1.0/package/ddclient/ddclient-21-cloudflare-ttl.patch branches/1.0/package/ddclient/ddclient-22-cloudflare-api-v4.patch branches/1.0/package/ddclient/ddclient-23-cloudflare-curl-headers.patch branches/1.0/package/ddclient/ddclient-24-cloudflare-JSON-PP.patch Added: branches/1.0/package/ddclient/ddclient-21-cloudflare-ttl.patch =================================================================== --- branches/1.0/package/ddclient/ddclient-21-cloudflare-ttl.patch (rev 0) +++ branches/1.0/package/ddclient/ddclient-21-cloudflare-ttl.patch 2017-01-20 17:59:48 UTC (rev 8111) @@ -0,0 +1,23 @@ +diff --git a/ddclient b/ddclient +index a39fcf0..e1e86e5 100755 +--- a/ddclient ++++ b/ddclient +@@ -445,6 +445,7 @@ my %variables = ( + 'wildcard' => setv(T_BOOL, 0, 1, 1, 0, undef), + 'mx' => setv(T_OFQDN, 0, 1, 1, '', undef), + 'backupmx' => setv(T_BOOL, 0, 1, 1, 0, undef), ++ 'ttl' => setv(T_NUMBER, 1, 0, 1, 1, undef), + }, + 'googledomains-common-defaults' => { + 'server' => setv(T_FQDNP, 1, 0, 1, 'domains.google.com', undef), +@@ -4083,7 +4084,8 @@ sub nic_cloudflare_update { + } + + # Set domain +- $url = "https://$config{$key}{'server'}/api_json.html?a=rec_edit&type=A&ttl=1"; ++ $url = "https://$config{$key}{'server'}/api_json.html?a=rec_edit&type=A"; ++ $url .= "&ttl=".$config{$key}{'ttl'}; + $url .= "&name=$hostname"; + $url .= "&z=".$config{$key}{'zone'}; + $url .= "&id=".$id; + Added: branches/1.0/package/ddclient/ddclient-22-cloudflare-api-v4.patch =================================================================== --- branches/1.0/package/ddclient/ddclient-22-cloudflare-api-v4.patch (rev 0) +++ branches/1.0/package/ddclient/ddclient-22-cloudflare-api-v4.patch 2017-01-20 17:59:48 UTC (rev 8111) @@ -0,0 +1,147 @@ +--- a/ddclient 2017-01-19 11:36:50.208744563 -0600 ++++ b/ddclient 2017-01-19 11:35:44.265920224 -0600 +@@ -439,7 +439,7 @@ + 'zone' => setv(T_STRING, 1, 1, 1, '', undef), + }, + 'cloudflare-common-defaults' => { +- 'server' => setv(T_FQDNP, 1, 0, 1, 'www.cloudflare.com', undef), ++ 'server' => setv(T_FQDNP, 1, 0, 1, 'api.cloudflare.com/client/v4', undef), + 'zone' => setv(T_FQDN, 1, 0, 1, '', undef), + 'static' => setv(T_BOOL, 0, 1, 1, 0, undef), + 'wildcard' => setv(T_BOOL, 0, 1, 1, 0, undef), +@@ -613,7 +613,7 @@ + 'update' => \&nic_cloudflare_update, + 'examples' => \&nic_cloudflare_examples, + 'variables' => merge( +- { 'server' => setv(T_FQDNP, 1, 0, 1, 'www.cloudflare.com', undef) }, ++ { 'server' => setv(T_FQDNP, 1, 0, 1, 'api.cloudflare.com/client/v4', undef) }, + { 'min-interval' => setv(T_DELAY, 0, 0, 1, interval('5m'), 0),}, + $variables{'cloudflare-common-defaults'}, + $variables{'service-common-defaults'}, +@@ -1894,6 +1894,9 @@ + my $url = shift || ''; + my $login = shift || ''; + my $password = shift || ''; ++ my $headers = shift || ''; ++ my $method = shift || 'GET'; ++ my $data = shift || ''; + my ($peer, $server, $port, $default_port, $use_ssl); + my ($sd, $rq, $request, $reply); + +@@ -1934,7 +1937,7 @@ + my $to = sprintf "%s%s", $server, $proxy ? " via proxy $peer:$port" : ""; + verbose("CONNECT:", "%s", $to); + +- $request = "GET "; ++ $request = "$method "; + $request .= "http://$server" if $proxy; + $request .= "/$url HTTP/1.0\n"; + $request .= "Host: $server\n"; +@@ -1943,7 +1946,10 @@ + $request .= "Authorization: Basic $auth\n" if $login || $password; + $request .= "User-Agent: ${program}/${version}\n"; + $request .= "Connection: close\n"; ++ $request .= "$headers\n"; ++ $request .= "Content-Length: ".length($data)."\n" if $data; + $request .= "\n"; ++ $request .= $data; + + ## make sure newlines are <cr><lf> for some pedantic proxy servers + ($rq = $request) =~ s/\n/\r\n/g; +@@ -4010,7 +4016,7 @@ + + Configuration variables applicable to the 'cloudflare' protocol are: + protocol=cloudflare ## +- server=fqdn.of.service ## defaults to www.cloudflare.com ++ server=fqdn.of.service ## defaults to api.cloudflare.com/client/v4 + login=service-login ## login name and password registered with the service + password=service-password ## + fully.qualified.host ## the host registered with the service. +@@ -4047,6 +4053,10 @@ + my $key = $hosts[0]; + my $ip = $config{$key}{'wantip'}; + ++ my $headers = "X-Auth-Email: $config{$key}{'login'}\n"; ++ $headers .= "X-Auth-Key: $config{$key}{'password'}\n"; ++ $headers .= "Content-Type: application/json"; ++ + # FQDNs + for my $domain (@hosts) { + (my $hostname = $domain) =~ s/\.$config{$key}{zone}$//; +@@ -4055,13 +4065,11 @@ + info("setting IP address to %s for %s", $ip, $domain); + verbose("UPDATE:","updating %s", $domain); + +- # Get domain ID +- my $url = "https://$config{$key}{'server'}/api_json.html?a=rec_load_all"; +- $url .= "&z=".$config{$key}{'zone'}; +- $url .= "&email=".$config{$key}{'login'}; +- $url .= "&tkn=".$config{$key}{'password'}; ++ # Get zone ID ++ my $url = "https://$config{$key}{'server'}/zones?"; ++ $url .= "name=".$config{$key}{'zone'}; + +- my $reply = geturl(opt('proxy'), $url); ++ my $reply = geturl(opt('proxy'), $url, undef, undef, $headers); + unless ($reply) { + failed("updating %s: Could not connect to %s.", $domain, $config{$key}{'server'}); + last; +@@ -4077,24 +4085,44 @@ + } + + # Pull the ID out of the json, messy +- my ($id) = map { $_->{name} eq $domain ? $_->{rec_id} : () } @{ $response->{response}->{recs}->{objs} }; +- unless($id) { +- failed("updating %s: No domain ID found.", $domain); ++ my ($zone_id) = map { $_->{name} eq $config{$key}{'zone'} ? $_->{id} : () } @{ $response->{result} }; ++ unless($zone_id) { ++ failed("updating %s: No zone ID found.", $config{$key}{'zone'}); + next; + } ++ info("zone ID is $zone_id"); + +- # Set domain +- $url = "https://$config{$key}{'server'}/api_json.html?a=rec_edit&type=A"; +- $url .= "&ttl=".$config{$key}{'ttl'}; +- $url .= "&name=$hostname"; +- $url .= "&z=".$config{$key}{'zone'}; +- $url .= "&id=".$id; +- $url .= "&email=".$config{$key}{'login'}; +- $url .= "&tkn=".$config{$key}{'password'}; +- $url .= "&content="; +- $url .= "$ip" if $ip; ++ # Get DNS record ID ++ $url = "https://$config{$key}{'server'}/zones/$zone_id/dns_records?"; ++ $url .= "type=A&name=$domain"; ++ ++ $reply = geturl(opt('proxy'), $url, undef, undef, $headers); ++ unless ($reply) { ++ failed("updating %s: Could not connect to %s.", $domain, $config{$key}{'server'}); ++ last; ++ } ++ last if !header_ok($domain, $reply); ++ ++ # Strip header ++ $reply =~ s/^.*?\n\n//s; ++ $response = JSON::Any->jsonToObj($reply); ++ if ($response->{result} eq 'error') { ++ failed ("%s", $response->{msg}); ++ next; ++ } + +- $reply = geturl(opt('proxy'), $url); ++ # Pull the ID out of the json, messy ++ my ($dns_rec_id) = map { $_->{name} eq $domain ? $_->{id} : () } @{ $response->{result} }; ++ unless($dns_rec_id) { ++ failed("updating %s: No DNS record ID found.", $domain); ++ next; ++ } ++ info("DNS record ID is $dns_rec_id"); ++ ++ # Set domain ++ $url = "https://$config{$key}{'server'}/zones/$zone_id/dns_records/$dns_rec_id"; ++ my $data = "{\"content\":\"$ip\"}"; ++ $reply = geturl(opt('proxy'), $url, undef, undef, $headers, "PATCH", $data); + unless ($reply) { + failed("updating %s: Could not connect to %s.", $domain, $config{$domain}{'server'}); + last; Added: branches/1.0/package/ddclient/ddclient-23-cloudflare-curl-headers.patch =================================================================== --- branches/1.0/package/ddclient/ddclient-23-cloudflare-curl-headers.patch (rev 0) +++ branches/1.0/package/ddclient/ddclient-23-cloudflare-curl-headers.patch 2017-01-20 17:59:48 UTC (rev 8111) @@ -0,0 +1,29 @@ +--- a/ddclient ++++ b/ddclient +@@ -1959,6 +1959,26 @@ + if (! opt('exec')) { + debug("skipped network connection"); + verbose("SENDING:", "%s", $request); ++ } elsif (($headers ne '')) { ++ $0 = sprintf("%s - curl (SSL w/headers) sending to %s port %s", $program, $peer, $port); ++ my $timeout = opt('timeout'); ++ my @head_lines = split('\n', $headers); ++ my $head_args = ''; ++ foreach my $head_line (@head_lines) { ++ $head_args .= "-H '$head_line' "; ++ } ++ ++ $reply = <<`CURL_SSL_HEADERS`; ++/usr/bin/curl -si0 -X $method --user-agent '${program}/${version}' \\ ++ --connect-timeout $timeout --max-time $timeout \\ ++ ${head_args} \\ ++ --data '${data}' \\ ++ --url 'https://${server}/${url}' 2>/dev/null ++CURL_SSL_HEADERS ++ ++ if (! $reply) { ++ warning("curl (SSL w/headers) cannot connect to $peer:$port"); ++ } + } elsif ($use_ssl) { + $0 = sprintf("%s - curl (SSL) sending to %s port %s", $program, $peer, $port); + my $timeout = opt('timeout'); Added: branches/1.0/package/ddclient/ddclient-24-cloudflare-JSON-PP.patch =================================================================== --- branches/1.0/package/ddclient/ddclient-24-cloudflare-JSON-PP.patch (rev 0) +++ branches/1.0/package/ddclient/ddclient-24-cloudflare-JSON-PP.patch 2017-01-20 17:59:48 UTC (rev 8111) @@ -0,0 +1,58 @@ +--- a/ddclient 2017-01-20 09:04:33.026792149 -0600 ++++ b/ddclient 2017-01-20 09:06:01.478773577 -0600 +@@ -1878,13 +1878,13 @@ + ## load_json_support + ###################################################################### + sub load_json_support { +- my $json_loaded = eval {require JSON::Any}; ++ my $json_loaded = eval {require JSON::PP}; + unless ($json_loaded) { + fatal(<<"EOM"); +-Error loading the Perl module JSON::Any needed for cloudflare update. ++Error loading the Perl module JSON::PP needed for cloudflare update. + EOM + } +- import JSON::Any; ++ import JSON::PP (qw/decode_json/); + } + ###################################################################### + ## geturl +@@ -4098,9 +4098,9 @@ + + # Strip header + $reply =~ s/^.*?\n\n//s; +- my $response = JSON::Any->jsonToObj($reply); +- if ($response->{result} eq 'error') { +- failed ("%s", $response->{msg}); ++ my $response = eval {decode_json($reply)}; ++ if (!defined $response || !defined $response->{result}) { ++ failed ("invalid json or result."); + next; + } + +@@ -4125,9 +4125,9 @@ + + # Strip header + $reply =~ s/^.*?\n\n//s; +- $response = JSON::Any->jsonToObj($reply); +- if ($response->{result} eq 'error') { +- failed ("%s", $response->{msg}); ++ $response = eval {decode_json($reply)}; ++ if (!defined $response || !defined $response->{result}) { ++ failed ("invalid json or result."); + next; + } + +@@ -4151,9 +4151,9 @@ + + # Strip header + $reply =~ s/^.*?\n\n//s; +- $response = JSON::Any->jsonToObj($reply); +- if ($response->{result} eq 'error') { +- failed ("%s", $response->{msg}); ++ $response = eval {decode_json($reply)}; ++ if (!defined $response || !defined $response->{result}) { ++ failed ("invalid json or result."); + } else { + success ("%s -- Updated Successfully to %s", $domain, $ip); + Modified: branches/1.0/package/ddclient/ddclient.conf =================================================================== --- branches/1.0/package/ddclient/ddclient.conf 2017-01-19 14:08:32 UTC (rev 8110) +++ branches/1.0/package/ddclient/ddclient.conf 2017-01-20 17:59:48 UTC (rev 8111) @@ -113,4 +113,12 @@ #@dtdns@>client=ddclient #@dtdns@>password=@DDPASS@ #@dtdns@>@DDHOST@ +#@cloudflare@> +#@cloudflare@>## Cloudflare +#@cloudflare@>ssl=yes +#@cloudflare@>protocol=cloudflare +#@cloudflare@>zone=@DOMAIN@ +#@cloudflare@>login=@DDUSER@ +#@cloudflare@>password=@DDPASS@ +#@cloudflare@>@DDHOST@ Modified: branches/1.0/package/ddclient/dynamicdns.init =================================================================== --- branches/1.0/package/ddclient/dynamicdns.init 2017-01-19 14:08:32 UTC (rev 8110) +++ branches/1.0/package/ddclient/dynamicdns.init 2017-01-20 17:59:48 UTC (rev 8111) @@ -4,7 +4,7 @@ gen_ddclient_conf() { - local use_web="" use_if="#" web_str delay service + local use_web="" use_if="#" web_str delay domain service if [ ! -x /usr/sbin/ddclient ]; then echo "dynamicdns: Script \"/usr/sbin/ddclient\" not found, exiting." >&2 @@ -26,6 +26,9 @@ web_str="$DDGETIP/" fi + # extract the root domain of DDHOST, used by some providers like Cloudflare + domain="$(echo $DDHOST | sed -n -r -e 's/^(.*\.|)([^.]+)\.([^.]+)$/\2.\3/p')" + # Handle Service Types case "$DDSERVICE" in 'de...@zo...') service="zoneedit" ;; @@ -61,6 +64,7 @@ sed -i -e "s|@DDUSER@|${DDUSER}|g" \ -e "s|@DDPASS@|${DDPASS}|g" \ -e "s|@DDHOST@|${DDHOST}|g" \ + -e "s|@DOMAIN@|${domain}|g" \ -e "s|@EXTIF@|${EXTIF}|g" \ -e "s|@EXT2IF@|${EXT2IF}|g" \ -e "s|@DELAY@|${delay}|g" \ Modified: branches/1.0/package/perl/perl.mk =================================================================== --- branches/1.0/package/perl/perl.mk 2017-01-19 14:08:32 UTC (rev 8110) +++ branches/1.0/package/perl/perl.mk 2017-01-20 17:59:48 UTC (rev 8111) @@ -14,7 +14,7 @@ PERL_ARCHNAME = $(ARCH)-linux -PERL_MODULES = constant version Carp Errno Fcntl PathTools POSIX Digest Socket IO XSLoader Exporter File-Find +PERL_MODULES = constant version Carp Errno Fcntl PathTools POSIX Digest Socket IO XSLoader Exporter B File-Find JSON-PP PERL_MODULES += Digest/MD5 Digest/SHA Getopt/Long Time/Local File/Glob Sys/Hostname PERL_CROSS_VERSION = 1.0.3 Modified: branches/1.0/package/webinterface/altweb/admin/network.php =================================================================== --- branches/1.0/package/webinterface/altweb/admin/network.php 2017-01-19 14:08:32 UTC (rev 8110) +++ branches/1.0/package/webinterface/altweb/admin/network.php 2017-01-20 17:59:48 UTC (rev 8111) @@ -86,6 +86,7 @@ $select_dyndns = array ( 'User Defined >>>' => '', 'ChangeIP' => 'changeip', + 'Cloudflare' => 'cloudflare', 'DNS-O-Matic' => 'de...@dn...', 'DNS Park' => 'dnspark', 'DtDNS' => 'dtdns', This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <abe...@us...> - 2017-01-22 15:47:43
|
Revision: 8118 http://sourceforge.net/p/astlinux/code/8118 Author: abelbeck Date: 2017-01-22 15:47:41 +0000 (Sun, 22 Jan 2017) Log Message: ----------- ddclient and webinterface Network tab, remove Dynamic DNS 'getip.krisk.org' (no longer working), map to default Modified Paths: -------------- branches/1.0/package/ddclient/dynamicdns.init branches/1.0/package/webinterface/altweb/admin/network.php Modified: branches/1.0/package/ddclient/dynamicdns.init =================================================================== --- branches/1.0/package/ddclient/dynamicdns.init 2017-01-21 22:12:28 UTC (rev 8117) +++ branches/1.0/package/ddclient/dynamicdns.init 2017-01-22 15:47:41 UTC (rev 8118) @@ -13,7 +13,7 @@ delay="360" - if [ -z "$DDGETIP" ]; then + if [ -z "$DDGETIP" -o "$DDGETIP" = "getip.krisk.org" ]; then web_str="myip.dnsomatic.com/" elif [ "$DDGETIP" = "interface" ]; then use_web="#" Modified: branches/1.0/package/webinterface/altweb/admin/network.php =================================================================== --- branches/1.0/package/webinterface/altweb/admin/network.php 2017-01-21 22:12:28 UTC (rev 8117) +++ branches/1.0/package/webinterface/altweb/admin/network.php 2017-01-22 15:47:41 UTC (rev 8118) @@ -1,6 +1,6 @@ <?php -// Copyright (C) 2008-2016 Lonnie Abelbeck +// Copyright (C) 2008-2017 Lonnie Abelbeck // This is free software, licensed under the GNU General Public License // version 3 as published by the Free Software Foundation; you can // redistribute it and/or modify it under the terms of the GNU @@ -40,6 +40,7 @@ // 06-07-2016, Added Avahi mDNS/DNS-SD support // 07-15-2016, Added 4th LAN Interface // 11-14-2016, Added IPsec strongSwan support +// 01-22-2017, Removed Dynamic DNS 'getip.krisk.org', map to default // // System location of rc.conf file $CONFFILE = '/etc/rc.conf'; @@ -106,7 +107,6 @@ 'User Defined >>>' => '', 'myip.dnsomatic.com' => 'myip.dnsomatic.com', 'checkip.dyndns.org' => 'checkip.dyndns.org', - 'getip.krisk.org' => 'getip.krisk.org', 'External Interface' => 'interface' ); @@ -2115,7 +2115,8 @@ putHtml('<tr class="dtrow1"><td style="text-align: left;" colspan="6">'); putHtml('DNS Get IPv4 Address:'); - if (($t_value = getVARdef($db, 'DDGETIP', $cur_db)) === '') { + $t_value = getVARdef($db, 'DDGETIP', $cur_db); + if ($t_value === '' || $t_value === 'getip.krisk.org') { $t_value = 'myip.dnsomatic.com'; } putHtml('<select name="dd_getip">'); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <abe...@us...> - 2017-02-02 17:40:10
|
Revision: 8145 http://sourceforge.net/p/astlinux/code/8145 Author: abelbeck Date: 2017-02-02 17:40:08 +0000 (Thu, 02 Feb 2017) Log Message: ----------- web interface, Network tab, Dynamic DNS Update, add button to edit '/mnt/kd/ddclient.conf' if it exists. Also if '/mnt/kd/ddclient.conf' exists, any of DDUSER, DDPASS, DDHOST may be undefined and ddclient will start with DDCLIENT=ddclient Modified Paths: -------------- branches/1.0/package/ddclient/dynamicdns.init branches/1.0/package/webinterface/altweb/admin/network.php Modified: branches/1.0/package/ddclient/dynamicdns.init =================================================================== --- branches/1.0/package/ddclient/dynamicdns.init 2017-02-02 14:53:44 UTC (rev 8144) +++ branches/1.0/package/ddclient/dynamicdns.init 2017-02-02 17:40:08 UTC (rev 8145) @@ -64,7 +64,7 @@ *) service="$(echo "$DDSERVICE" | tr -d '^$*[]|"')" ;; # sanitize for sed regex esac - if [ -n "$DDUSER" -a -n "$DDPASS" -a -n "$DDHOST" ]; then + if [ -n "$DDUSER" -a -n "$DDPASS" -a -n "$DDHOST" ] || [ -f /mnt/kd/ddclient.conf ]; then # Genearate /etc/ddclient.conf configuration file if [ -f /mnt/kd/ddclient.conf ]; then Modified: branches/1.0/package/webinterface/altweb/admin/network.php =================================================================== --- branches/1.0/package/webinterface/altweb/admin/network.php 2017-02-02 14:53:44 UTC (rev 8144) +++ branches/1.0/package/webinterface/altweb/admin/network.php 2017-02-02 17:40:08 UTC (rev 8145) @@ -1041,6 +1041,12 @@ $result = saveNETWORKsettings($NETCONFDIR, $NETCONFFILE); header('Location: /admin/pptp.php'); exit; + } elseif (isset($_POST['submit_edit_ddclient'])) { + $result = saveNETWORKsettings($NETCONFDIR, $NETCONFFILE); + if (is_writable($file = '/mnt/kd/ddclient.conf')) { + header('Location: /admin/edit.php?file='.$file); + exit; + } } elseif (isset($_POST['submit_edit_ldap'])) { $result = saveNETWORKsettings($NETCONFDIR, $NETCONFFILE); if (is_writable($file = '/mnt/kd/ldap.conf')) { @@ -2109,6 +2115,10 @@ $sel = ($dd_client === 'ddclient' || $dd_client === 'inadyn') ? ' selected="selected"' : ''; putHtml('<option value="ddclient"'.$sel.'>enabled</option>'); putHtml('</select>'); + if (is_writable('/mnt/kd/ddclient.conf')) { + putHtml('–'); + putHtml('<input type="submit" value="Dynamic DNS Configuration" name="submit_edit_ddclient" class="button" />'); + } putHtml('</td></tr>'); putHtml('<tr class="dtrow1"><td style="text-align: left;" colspan="6">'); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <abe...@us...> - 2017-03-22 23:06:30
|
Revision: 8221 http://sourceforge.net/p/astlinux/code/8221 Author: abelbeck Date: 2017-03-22 23:06:28 +0000 (Wed, 22 Mar 2017) Log Message: ----------- OpenSSH, (major) version bump to 7.5p1, tweak adaptive-ban plugin to match the latest sshd logging Modified Paths: -------------- branches/1.0/package/arnofw/adaptive-ban/adaptive-ban-helper.sh branches/1.0/package/openssh/openssh.mk branches/1.0/package/openssh/sshd.init Removed Paths: ------------- branches/1.0/package/openssh/openssh-UseRoaming-CVE-2016-0777-CVE-2016-0778.patch Modified: branches/1.0/package/arnofw/adaptive-ban/adaptive-ban-helper.sh =================================================================== --- branches/1.0/package/arnofw/adaptive-ban/adaptive-ban-helper.sh 2017-03-21 19:52:05 UTC (rev 8220) +++ branches/1.0/package/arnofw/adaptive-ban/adaptive-ban-helper.sh 2017-03-22 23:06:28 UTC (rev 8221) @@ -172,7 +172,7 @@ local file="$1" PREFIX="$2" HOST="$3" sed -n -r -e "s/^${PREFIX}Failed (password|publickey) for .* from ${HOST}( port [0-9]*)?( ssh[0-9]*)?$/\2/p" \ - -e "s/^${PREFIX}[iI](llegal|nvalid) user .* from ${HOST}[[:space:]]*$/\2/p" \ + -e "s/^${PREFIX}[iI](llegal|nvalid) user .* from ${HOST}( port [0-9]*)?$/\2/p" \ "$file" >"$TEMPFILE" } Deleted: branches/1.0/package/openssh/openssh-UseRoaming-CVE-2016-0777-CVE-2016-0778.patch =================================================================== --- branches/1.0/package/openssh/openssh-UseRoaming-CVE-2016-0777-CVE-2016-0778.patch 2017-03-21 19:52:05 UTC (rev 8220) +++ branches/1.0/package/openssh/openssh-UseRoaming-CVE-2016-0777-CVE-2016-0778.patch 2017-03-22 23:06:28 UTC (rev 8221) @@ -1,43 +0,0 @@ -Experimental roaming code in the ssh client could be tricked by a -hostile sshd server, potentially leaking key material. -CVE-2016-0777 and CVE-2016-0778. -Prevent this problem immediately by adding the line "UseRoaming no" to -/etc/ssh/ssh_config. - -Index: usr.bin/ssh/readconf.c -=================================================================== ---- openssh-6.6p1/readconf.c 30 Jul 2015 00:01:34 -0000 -+++ openssh-6.6p1/readconf.c 13 Jan 2016 23:17:23 -0000 -@@ -1556,7 +1556,7 @@ initialize_options(Options * options) - options->tun_remote = -1; - options->local_command = NULL; - options->permit_local_command = -1; -- options->use_roaming = -1; -+ options->use_roaming = 0; - options->visual_host_key = -1; - options->ip_qos_interactive = -1; - options->ip_qos_bulk = -1; -@@ -1723,8 +1723,7 @@ fill_default_options(Options * options) - options->tun_remote = SSH_TUNID_ANY; - if (options->permit_local_command == -1) - options->permit_local_command = 0; -- if (options->use_roaming == -1) -- options->use_roaming = 1; -+ options->use_roaming = 0; - if (options->visual_host_key == -1) - options->visual_host_key = 0; - if (options->ip_qos_interactive == -1) -Index: usr.bin/ssh/ssh.c -=================================================================== ---- openssh-6.6p1/ssh.c 30 Jul 2015 00:01:34 -0000 -+++ openssh-6.6p1/ssh.c 13 Jan 2016 23:17:23 -0000 -@@ -1729,9 +1729,6 @@ ssh_session2(void) - fork_postauth(); - } - -- if (options.use_roaming) -- request_roaming(); -- - return client_loop(tty_flag, tty_flag ? - options.escape_char : SSH_ESCAPECHAR_NONE, id); - } Modified: branches/1.0/package/openssh/openssh.mk =================================================================== --- branches/1.0/package/openssh/openssh.mk 2017-03-21 19:52:05 UTC (rev 8220) +++ branches/1.0/package/openssh/openssh.mk 2017-03-22 23:06:28 UTC (rev 8221) @@ -4,7 +4,7 @@ # ############################################################# -OPENSSH_VERSION = 6.6p1 +OPENSSH_VERSION = 7.5p1 OPENSSH_SITE = http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable OPENSSH_CONF_ENV = LD="$(TARGET_CC)" LDFLAGS="$(TARGET_CFLAGS)" @@ -12,13 +12,13 @@ OPENSSH_CONF_OPT = \ --libexecdir=/usr/libexec \ + --sysconfdir=/etc/ssh \ --disable-lastlog \ --disable-utmp \ --disable-utmpx \ --disable-wtmp \ --disable-wtmpx \ - --disable-strip \ - --sysconfdir=/etc/ssh + --disable-strip ifeq ($(BR2_PACKAGE_LIBEDIT),y) OPENSSH_DEPENDENCIES += libedit @@ -25,6 +25,10 @@ OPENSSH_CONF_OPT += --with-libedit="$(STAGING_DIR)/usr" endif +OPENSSH_CONF_OPT += --without-pam + +OPENSSH_CONF_OPT += --without-selinux + OPENSSH_INSTALL_TARGET_OPT = DESTDIR=$(TARGET_DIR) -C $(@D) install-nosysconf define OPENSSH_INSTALL_INITSCRIPT Modified: branches/1.0/package/openssh/sshd.init =================================================================== --- branches/1.0/package/openssh/sshd.init 2017-03-21 19:52:05 UTC (rev 8220) +++ branches/1.0/package/openssh/sshd.init 2017-03-22 23:06:28 UTC (rev 8221) @@ -32,6 +32,9 @@ PermitRootLogin ${SSHDROOT:-yes} PasswordAuthentication ${SSHD_PASS_AUTH:-yes} +UseDNS no +PubkeyAcceptedKeyTypes=+ssh-dss + IPQoS cs2 af41 Subsystem sftp /usr/libexec/sftp-server" >> /tmp/etc/ssh/sshd_config This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <abe...@us...> - 2017-04-05 16:39:18
|
Revision: 8257 http://sourceforge.net/p/astlinux/code/8257 Author: abelbeck Date: 2017-04-05 16:39:15 +0000 (Wed, 05 Apr 2017) Log Message: ----------- pjsip version bump to 2.6 and Asterisk 13.15.0-rc3 Modified Paths: -------------- branches/1.0/package/asterisk/asterisk-13-configure-menuselect-cross-fix.patch branches/1.0/package/asterisk/asterisk-13-extension-changed-verbosity-chan_sip.patch branches/1.0/package/asterisk/asterisk.mk branches/1.0/package/pjsip/Config.in branches/1.0/package/pjsip/asterisk-config_site.h branches/1.0/package/pjsip/pjsip.mk Added Paths: ----------- branches/1.0/package/pjsip/pjsip-0000-remove-third-party.patch branches/1.0/package/pjsip/pjsip-0000-set_apps_initial_log_level.patch branches/1.0/package/pjsip/pjsip-0010-evsub-Add-pjsip_evsub_set_uas_timeout.patch branches/1.0/package/pjsip/pjsip-0011-r5554-svn-backport-Increase-SENDER_WIDTH-column-size.patch branches/1.0/package/pjsip/pjsip-0013-r5559-svn-backport-Fix-to-resolve-DNS-SRV-crashes.patch Removed Paths: ------------- branches/1.0/package/pjsip/pjsip-0001-r5397-pjsip_generic_array_max_count.patch branches/1.0/package/pjsip/pjsip-0001-r5400-pjsip_tx_data_dec_ref.patch branches/1.0/package/pjsip/pjsip-0002-Fix-1946-Avoid-deinitialization-of-uninitialized-cli.patch branches/1.0/package/pjsip/pjsip-0002-r5435-add-pjsip_inv_session-ref_cnt.patch branches/1.0/package/pjsip/pjsip-0003-r5403-pjsip_IPV6_V6ONLY.patch branches/1.0/package/pjsip/pjsip-0004-resolver.c-Prevent-SERVFAIL-from-marking-name-server.patch branches/1.0/package/pjsip/pjsip-0005-Re-1969-Fix-crash-on-using-an-already-destroyed-SSL-.patch branches/1.0/package/pjsip/pjsip-0006-r5471-svn-backport-Various-fixes-for-DNS-IPv6.patch branches/1.0/package/pjsip/pjsip-0006-r5473-svn-backport-Fix-pending-query.patch branches/1.0/package/pjsip/pjsip-0006-r5475-svn-backport-Remove-DNS-cache-entry.patch branches/1.0/package/pjsip/pjsip-0006-r5477-svn-backport-Fix-DNS-write-on-freed-memory.patch Modified: branches/1.0/package/asterisk/asterisk-13-configure-menuselect-cross-fix.patch =================================================================== --- branches/1.0/package/asterisk/asterisk-13-configure-menuselect-cross-fix.patch 2017-04-02 13:30:34 UTC (rev 8256) +++ branches/1.0/package/asterisk/asterisk-13-configure-menuselect-cross-fix.patch 2017-04-05 16:39:15 UTC (rev 8257) @@ -1,6 +1,6 @@ --- asterisk-13/configure.ac.orig 2014-01-24 16:52:23.000000000 -0600 +++ asterisk-13/configure.ac 2014-01-24 16:55:14.000000000 -0600 -@@ -2668,11 +2668,13 @@ +@@ -2670,11 +2670,13 @@ AC_OUTPUT ${ac_cv_path_EGREP} 'CURSES|GTK2|OSARCH|NEWT' makeopts > makeopts.acbak2 Modified: branches/1.0/package/asterisk/asterisk-13-extension-changed-verbosity-chan_sip.patch =================================================================== --- branches/1.0/package/asterisk/asterisk-13-extension-changed-verbosity-chan_sip.patch 2017-04-02 13:30:34 UTC (rev 8256) +++ branches/1.0/package/asterisk/asterisk-13-extension-changed-verbosity-chan_sip.patch 2017-04-05 16:39:15 UTC (rev 8257) @@ -1,6 +1,6 @@ --- asterisk-13/channels/chan_sip.c.orig 2015-04-23 10:22:04.000000000 -0500 +++ asterisk-13/channels/chan_sip.c 2015-04-23 10:22:40.000000000 -0500 -@@ -17368,7 +17368,7 @@ +@@ -17449,7 +17449,7 @@ } if (!force) { Modified: branches/1.0/package/asterisk/asterisk.mk =================================================================== --- branches/1.0/package/asterisk/asterisk.mk 2017-04-02 13:30:34 UTC (rev 8256) +++ branches/1.0/package/asterisk/asterisk.mk 2017-04-05 16:39:15 UTC (rev 8257) @@ -7,7 +7,7 @@ ASTERISK_VERSION := 11.25.1 else ifeq ($(BR2_PACKAGE_ASTERISK_v13),y) -ASTERISK_VERSION := 13.14.0 +ASTERISK_VERSION := 13.15.0-rc3 else ASTERISK_VERSION := 15.0.0 endif Modified: branches/1.0/package/pjsip/Config.in =================================================================== --- branches/1.0/package/pjsip/Config.in 2017-04-02 13:30:34 UTC (rev 8256) +++ branches/1.0/package/pjsip/Config.in 2017-04-05 16:39:15 UTC (rev 8257) @@ -1,6 +1,5 @@ config BR2_PACKAGE_PJSIP bool "pjsip" - select BR2_PACKAGE_LIBSRTP help PJSIP is a free and open source multimedia communication library written in C language implementing standard based protocols such as: Modified: branches/1.0/package/pjsip/asterisk-config_site.h =================================================================== --- branches/1.0/package/pjsip/asterisk-config_site.h 2017-04-02 13:30:34 UTC (rev 8256) +++ branches/1.0/package/pjsip/asterisk-config_site.h 2017-04-05 16:39:15 UTC (rev 8257) @@ -12,6 +12,13 @@ */ #define PJMEDIA_HAS_SRTP 0 +/* + * Defining PJMEDIA_HAS_WEBRTC_AEC to 0 does NOT disable Asterisk's ability to use + * webrtc. It only disables the pjmedia webrtc transport which Asterisk doesn't use. + */ +#undef PJMEDIA_HAS_WEBRTC_AEC +#define PJMEDIA_HAS_WEBRTC_AEC 0 + #define PJ_HAS_IPV6 1 #define NDEBUG 1 #define PJ_MAX_HOSTNAME (256) Added: branches/1.0/package/pjsip/pjsip-0000-remove-third-party.patch =================================================================== --- branches/1.0/package/pjsip/pjsip-0000-remove-third-party.patch (rev 0) +++ branches/1.0/package/pjsip/pjsip-0000-remove-third-party.patch 2017-04-05 16:39:15 UTC (rev 8257) @@ -0,0 +1,124 @@ +diff --git a/build.mak.in b/build.mak.in +index eb28663..83024ef 100644 +--- a/build.mak.in ++++ b/build.mak.in +@@ -28,19 +27,6 @@ export APP_THIRD_PARTY_EXT := + export APP_THIRD_PARTY_LIBS := + export APP_THIRD_PARTY_LIB_FILES := + +-ifeq (@ac_external_srtp@,1) +-# External SRTP library +-APP_THIRD_PARTY_EXT += -lsrtp +-else +-APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libsrtp-$(LIB_SUFFIX) +-ifeq ($(PJ_SHARED_LIBRARIES),) +-APP_THIRD_PARTY_LIBS += -lsrtp-$(TARGET_NAME) +-else +-APP_THIRD_PARTY_LIBS += -lsrtp +-APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libsrtp.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/third_party/lib/libsrtp.$(SHLIB_SUFFIX) +-endif +-endif +- + ifeq (@ac_pjmedia_resample@,libresample) + APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libresample-$(LIB_SUFFIX) + ifeq ($(PJ_SHARED_LIBRARIES),) +@@ -57,99 +43,6 @@ APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libresample.$(SHLIB_SUFFI + endif + endif + +-ifneq (@ac_no_gsm_codec@,1) +-ifeq (@ac_external_gsm@,1) +-# External GSM library +-APP_THIRD_PARTY_EXT += -lgsm +-else +-APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libgsmcodec-$(LIB_SUFFIX) +-ifeq ($(PJ_SHARED_LIBRARIES),) +-APP_THIRD_PARTY_LIBS += -lgsmcodec-$(TARGET_NAME) +-else +-APP_THIRD_PARTY_LIBS += -lgsmcodec +-APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libgsmcodec.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/third_party/lib/libgsmcodec.$(SHLIB_SUFFIX) +-endif +-endif +-endif +- +-ifneq (@ac_no_speex_codec@,1) +-ifeq (@ac_external_speex@,1) +-APP_THIRD_PARTY_EXT += -lspeex -lspeexdsp +-else +-APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libspeex-$(LIB_SUFFIX) +-ifeq ($(PJ_SHARED_LIBRARIES),) +-APP_THIRD_PARTY_LIBS += -lspeex-$(TARGET_NAME) +-else +-APP_THIRD_PARTY_LIBS += -lspeex +-APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libspeex.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/third_party/lib/libspeex.$(SHLIB_SUFFIX) +-endif +-endif +-endif +- +-ifneq (@ac_no_ilbc_codec@,1) +-APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libilbccodec-$(LIB_SUFFIX) +-ifeq ($(PJ_SHARED_LIBRARIES),) +-APP_THIRD_PARTY_LIBS += -lilbccodec-$(TARGET_NAME) +-else +-APP_THIRD_PARTY_LIBS += -lilbccodec +-APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libilbccodec.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/third_party/lib/libilbccodec.$(SHLIB_SUFFIX) +-endif +-endif +- +-ifneq (@ac_no_g7221_codec@,1) +-APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libg7221codec-$(LIB_SUFFIX) +-ifeq ($(PJ_SHARED_LIBRARIES),) +-APP_THIRD_PARTY_LIBS += -lg7221codec-$(TARGET_NAME) +-else +-APP_THIRD_PARTY_LIBS += -lg7221codec +-APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libg7221codec.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/third_party/lib/libg7221codec.$(SHLIB_SUFFIX) +-endif +-endif +- +-ifneq ($(findstring pa,@ac_pjmedia_snd@),) +-ifeq (@ac_external_pa@,1) +-# External PA +-APP_THIRD_PARTY_EXT += -lportaudio +-else +-APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libportaudio-$(LIB_SUFFIX) +-ifeq ($(PJ_SHARED_LIBRARIES),) +-APP_THIRD_PARTY_LIBS += -lportaudio-$(TARGET_NAME) +-else +-APP_THIRD_PARTY_LIBS += -lportaudio +-APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libportaudio.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/third_party/lib/libportaudio.$(SHLIB_SUFFIX) +-endif +-endif +-endif +- +-ifneq (@ac_no_yuv@,1) +-ifeq (@ac_external_yuv@,1) +-APP_THIRD_PARTY_EXT += -lyuv +-else +-APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libyuv-$(LIB_SUFFIX) +-ifeq ($(PJ_SHARED_LIBRARIES),) +-APP_THIRD_PARTY_LIBS += -lyuv-$(TARGET_NAME) +-else +-APP_THIRD_PARTY_LIBS += -lyuv +-APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libyuv.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/third_party/lib/libyuv.$(SHLIB_SUFFIX) +-endif +-endif +-endif +- +-ifneq (@ac_no_webrtc@,1) +-ifeq (@ac_external_webrtc@,1) +-APP_THIRD_PARTY_EXT += -lwebrtc +-else +-APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libwebrtc-$(LIB_SUFFIX) +-ifeq ($(PJ_SHARED_LIBRARIES),) +-APP_THIRD_PARTY_LIBS += -lwebrtc-$(TARGET_NAME) +-else +-APP_THIRD_PARTY_LIBS += -lwebrtc +-APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libwebrtc.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/third_party/lib/libwebrtc.$(SHLIB_SUFFIX) +-endif +-endif +-endif +- +- + # Additional flags + @ac_build_mak_vars@ + Added: branches/1.0/package/pjsip/pjsip-0000-set_apps_initial_log_level.patch =================================================================== --- branches/1.0/package/pjsip/pjsip-0000-set_apps_initial_log_level.patch (rev 0) +++ branches/1.0/package/pjsip/pjsip-0000-set_apps_initial_log_level.patch 2017-04-05 16:39:15 UTC (rev 8257) @@ -0,0 +1,39 @@ +diff --git a/pjsip-apps/src/pjsua/main.c b/pjsip-apps/src/pjsua/main.c +index 2baaf82..11831f2 100644 +--- a/pjsip-apps/src/pjsua/main.c ++++ b/pjsip-apps/src/pjsua/main.c +@@ -126,5 +126,7 @@ int main_func(int argc, char *argv[]) + + int main(int argc, char *argv[]) + { ++ pj_log_set_level(1); ++ + return pj_run_app(&main_func, argc, argv, 0); + } +diff --git a/pjsip-apps/src/pjsystest/main_console.c b/pjsip-apps/src/pjsystest/main_console.c +index 122cdc7..dc79eab 100644 +--- a/pjsip-apps/src/pjsystest/main_console.c ++++ b/pjsip-apps/src/pjsystest/main_console.c +@@ -133,6 +133,8 @@ void gui_sleep(unsigned sec) + + int main() + { ++ pj_log_set_level(1); ++ + if (systest_init() != PJ_SUCCESS) + return 1; + +diff --git a/pjsip-apps/src/python/_pjsua.c b/pjsip-apps/src/python/_pjsua.c +index fb80e23..c9b21d8 100644 +--- a/pjsip-apps/src/python/_pjsua.c ++++ b/pjsip-apps/src/python/_pjsua.c +@@ -4437,7 +4437,8 @@ init_pjsua(void) + PyObject* m = NULL; + #define ADD_CONSTANT(mod,name) PyModule_AddIntConstant(mod,#name,name) + +- ++ pj_log_set_level(1); ++ + PyEval_InitThreads(); + + if (PyType_Ready(&PyTyp_pjsua_callback) < 0) Deleted: branches/1.0/package/pjsip/pjsip-0001-r5397-pjsip_generic_array_max_count.patch =================================================================== --- branches/1.0/package/pjsip/pjsip-0001-r5397-pjsip_generic_array_max_count.patch 2017-04-02 13:30:34 UTC (rev 8256) +++ branches/1.0/package/pjsip/pjsip-0001-r5397-pjsip_generic_array_max_count.patch 2017-04-05 16:39:15 UTC (rev 8257) @@ -1,58 +0,0 @@ -This patch updates array limit checks and docs -in pjsip_evsub_register_pkg() and pjsip_endpt_add_capability(). - -Index: pjsip/include/pjsip/sip_endpoint.h -=================================================================== ---- a/pjsip/include/pjsip/sip_endpoint.h (revision 5396) -+++ b/pjsip/include/pjsip/sip_endpoint.h (revision 5397) -@@ -583,7 +583,8 @@ - * @param hname If htype specifies PJSIP_H_OTHER, then the header name - * must be supplied in this argument. Otherwise the value - * must be set to NULL. -- * @param count The number of tags in the array. -+ * @param count The number of tags in the array. The value must not -+ * be greater than PJSIP_GENERIC_ARRAY_MAX_COUNT. - * @param tags Array of tags describing the capabilities or extensions - * to be added to the appropriate header. - * -Index: pjsip/include/pjsip-simple/evsub.h -=================================================================== ---- a/pjsip/include/pjsip-simple/evsub.h (revision 5396) -+++ b/pjsip/include/pjsip-simple/evsub.h (revision 5397) -@@ -246,7 +246,8 @@ - * registered. - * @param event_name Event package identification. - * @param expires Default subscription expiration time, in seconds. -- * @param accept_cnt Number of strings in Accept array. -+ * @param accept_cnt Number of strings in Accept array. The value must -+ * not be greater than PJSIP_GENERIC_ARRAY_MAX_COUNT. - * @param accept Array of Accept value. - * - * @return PJ_SUCCESS on success. -Index: pjsip/src/pjsip/sip_endpoint.c -=================================================================== ---- a/pjsip/src/pjsip/sip_endpoint.c (revision 5396) -+++ b/pjsip/src/pjsip/sip_endpoint.c (revision 5397) -@@ -371,6 +371,7 @@ - - /* Check arguments. */ - PJ_ASSERT_RETURN(endpt!=NULL && count>0 && tags, PJ_EINVAL); -+ PJ_ASSERT_RETURN(count <= PJSIP_GENERIC_ARRAY_MAX_COUNT, PJ_ETOOMANY); - PJ_ASSERT_RETURN(htype==PJSIP_H_ACCEPT || - htype==PJSIP_H_ALLOW || - htype==PJSIP_H_SUPPORTED, -Index: pjsip/src/pjsip-simple/evsub.c -=================================================================== ---- a/pjsip/src/pjsip-simple/evsub.c (revision 5396) -+++ b/pjsip/src/pjsip-simple/evsub.c (revision 5397) -@@ -412,7 +412,9 @@ - unsigned i; - - PJ_ASSERT_RETURN(pkg_mod && event_name, PJ_EINVAL); -- PJ_ASSERT_RETURN(accept_cnt < PJ_ARRAY_SIZE(pkg->pkg_accept->values), -+ -+ /* Make sure accept_cnt < PJ_ARRAY_SIZE(pkg->pkg_accept->values) */ -+ PJ_ASSERT_RETURN(accept_cnt <= PJSIP_GENERIC_ARRAY_MAX_COUNT, - PJ_ETOOMANY); - - /* Make sure evsub module has been initialized */ Deleted: branches/1.0/package/pjsip/pjsip-0001-r5400-pjsip_tx_data_dec_ref.patch =================================================================== --- branches/1.0/package/pjsip/pjsip-0001-r5400-pjsip_tx_data_dec_ref.patch 2017-04-02 13:30:34 UTC (rev 8256) +++ branches/1.0/package/pjsip/pjsip-0001-r5400-pjsip_tx_data_dec_ref.patch 2017-04-05 16:39:15 UTC (rev 8257) @@ -1,24 +0,0 @@ -This patch fixes the issue in pjsip_tx_data_dec_ref() -when tx_data_destroy can be called more than once, -and checks if invalid value (e.g. NULL) is passed to. - -Index: pjsip/src/pjsip/sip_transport.c -=================================================================== ---- a/pjsip/src/pjsip/sip_transport.c (revision 5399) -+++ b/pjsip/src/pjsip/sip_transport.c (revision 5400) -@@ -491,8 +491,13 @@ - */ - PJ_DEF(pj_status_t) pjsip_tx_data_dec_ref( pjsip_tx_data *tdata ) - { -- pj_assert( pj_atomic_get(tdata->ref_cnt) > 0); -- if (pj_atomic_dec_and_get(tdata->ref_cnt) <= 0) { -+ pj_atomic_value_t ref_cnt; -+ -+ PJ_ASSERT_RETURN(tdata && tdata->ref_cnt, PJ_EINVAL); -+ -+ ref_cnt = pj_atomic_dec_and_get(tdata->ref_cnt); -+ pj_assert( ref_cnt >= 0); -+ if (ref_cnt == 0) { - tx_data_destroy(tdata); - return PJSIP_EBUFDESTROYED; - } else { Deleted: branches/1.0/package/pjsip/pjsip-0002-Fix-1946-Avoid-deinitialization-of-uninitialized-cli.patch =================================================================== --- branches/1.0/package/pjsip/pjsip-0002-Fix-1946-Avoid-deinitialization-of-uninitialized-cli.patch 2017-04-02 13:30:34 UTC (rev 8256) +++ branches/1.0/package/pjsip/pjsip-0002-Fix-1946-Avoid-deinitialization-of-uninitialized-cli.patch 2017-04-05 16:39:15 UTC (rev 8257) @@ -1,55 +0,0 @@ -From 33fd755e819dc85a96718abc0ae26a9b46f14800 Mon Sep 17 00:00:00 2001 -From: nanang <nanang@localhost> -Date: Thu, 28 Jul 2016 08:21:45 +0000 -Subject: [PATCH 2/3] Fix #1946: Avoid deinitialization of uninitialized client - auth session. - ---- - pjsip/src/pjsip/sip_dialog.c | 18 ++++++------------ - 1 file changed, 6 insertions(+), 12 deletions(-) - -diff --git a/pjsip/src/pjsip/sip_dialog.c b/pjsip/src/pjsip/sip_dialog.c -index f03885d..421ddc4 100644 ---- a/pjsip/src/pjsip/sip_dialog.c -+++ b/pjsip/src/pjsip/sip_dialog.c -@@ -92,6 +92,12 @@ static pj_status_t create_dialog( pjsip_user_agent *ua, - pj_list_init(&dlg->inv_hdr); - pj_list_init(&dlg->rem_cap_hdr); - -+ /* Init client authentication session. */ -+ status = pjsip_auth_clt_init(&dlg->auth_sess, dlg->endpt, -+ dlg->pool, 0); -+ if (status != PJ_SUCCESS) -+ goto on_error; -+ - status = pj_mutex_create_recursive(pool, dlg->obj_name, &dlg->mutex_); - if (status != PJ_SUCCESS) - goto on_error; -@@ -283,12 +289,6 @@ PJ_DEF(pj_status_t) pjsip_dlg_create_uac( pjsip_user_agent *ua, - /* Initial route set is empty. */ - pj_list_init(&dlg->route_set); - -- /* Init client authentication session. */ -- status = pjsip_auth_clt_init(&dlg->auth_sess, dlg->endpt, -- dlg->pool, 0); -- if (status != PJ_SUCCESS) -- goto on_error; -- - /* Register this dialog to user agent. */ - status = pjsip_ua_register_dlg( ua, dlg ); - if (status != PJ_SUCCESS) -@@ -506,12 +506,6 @@ pj_status_t create_uas_dialog( pjsip_user_agent *ua, - } - dlg->route_set_frozen = PJ_TRUE; - -- /* Init client authentication session. */ -- status = pjsip_auth_clt_init(&dlg->auth_sess, dlg->endpt, -- dlg->pool, 0); -- if (status != PJ_SUCCESS) -- goto on_error; -- - /* Increment the dialog's lock since tsx may cause the dialog to be - * destroyed prematurely (such as in case of transport error). - */ --- -2.7.4 Deleted: branches/1.0/package/pjsip/pjsip-0002-r5435-add-pjsip_inv_session-ref_cnt.patch =================================================================== --- branches/1.0/package/pjsip/pjsip-0002-r5435-add-pjsip_inv_session-ref_cnt.patch 2017-04-02 13:30:34 UTC (rev 8256) +++ branches/1.0/package/pjsip/pjsip-0002-r5435-add-pjsip_inv_session-ref_cnt.patch 2017-04-05 16:39:15 UTC (rev 8257) @@ -1,212 +0,0 @@ -When a transport error occured on an INVITE session -the stack calls on_tsx_state_changed with new state -PJSIP_INV_STATE_DISCONNECTED and immediately destroys -the INVITE session. -At the same time this INVITE session could being processed -on another thread. This thread could use the session's -memory pools which were already freed, so we get segfault. - -This patch adds a reference counter and new functions: -pjsip_inv_add_ref and pjsip_inv_dec_ref. -The INVITE session is destroyed only when the reference -counter has reached zero. - -To avoid race condition an application should call -pjsip_inv_add_ref/pjsip_inv_dec_ref. - -Index: pjsip/include/pjsip-ua/sip_inv.h -=================================================================== ---- a/pjsip/include/pjsip-ua/sip_inv.h (revision 5434) -+++ b/pjsip/include/pjsip-ua/sip_inv.h (revision 5435) -@@ -383,6 +383,11 @@ - * Other applications that want to use these pools must understand - * that the flip-flop pool's lifetimes are synchronized to the - * SDP offer-answer negotiation. -+ * -+ * The lifetime of this session is controlled by the reference counter in this -+ * structure, which is manipulated by calling #pjsip_inv_add_ref and -+ * #pjsip_inv_dec_ref. When the reference counter has reached zero, then -+ * this session will be destroyed. - */ - struct pjsip_inv_session - { -@@ -412,6 +417,7 @@ - struct pjsip_timer *timer; /**< Session Timers. */ - pj_bool_t following_fork; /**< Internal, following - forked media? */ -+ pj_atomic_t *ref_cnt; /**< Reference counter. */ - }; - - -@@ -631,6 +637,30 @@ - - - /** -+ * Add reference counter to the INVITE session. The reference counter controls -+ * the life time of the session, ie. when the counter reaches zero, then it -+ * will be destroyed. -+ * -+ * @param inv The INVITE session. -+ * @return PJ_SUCCESS if the INVITE session reference counter -+ * was increased. -+ */ -+PJ_DECL(pj_status_t) pjsip_inv_add_ref( pjsip_inv_session *inv ); -+ -+/** -+ * Decrement reference counter of the INVITE session. -+ * When the session is no longer used, it will be destroyed and -+ * caller is informed with PJ_EGONE return status. -+ * -+ * @param inv The INVITE session. -+ * @return PJ_SUCCESS if the INVITE session reference counter -+ * was decreased. A status PJ_EGONE will be returned to -+ * inform that session is destroyed. -+ */ -+PJ_DECL(pj_status_t) pjsip_inv_dec_ref( pjsip_inv_session *inv ); -+ -+ -+/** - * Forcefully terminate and destroy INVITE session, regardless of - * the state of the session. Note that this function should only be used - * when there is failure in the INVITE session creation. After the -Index: pjsip/src/pjsip-ua/sip_inv.c -=================================================================== ---- a/pjsip/src/pjsip-ua/sip_inv.c (revision 5434) -+++ b/pjsip/src/pjsip-ua/sip_inv.c (revision 5435) -@@ -195,6 +195,65 @@ - } - - /* -+ * Add reference to INVITE session. -+ */ -+PJ_DEF(pj_status_t) pjsip_inv_add_ref( pjsip_inv_session *inv ) -+{ -+ PJ_ASSERT_RETURN(inv && inv->ref_cnt, PJ_EINVAL); -+ -+ pj_atomic_inc(inv->ref_cnt); -+ -+ return PJ_SUCCESS; -+} -+ -+static void inv_session_destroy(pjsip_inv_session *inv) -+{ -+ if (inv->last_ack) { -+ pjsip_tx_data_dec_ref(inv->last_ack); -+ inv->last_ack = NULL; -+ } -+ if (inv->invite_req) { -+ pjsip_tx_data_dec_ref(inv->invite_req); -+ inv->invite_req = NULL; -+ } -+ if (inv->pending_bye) { -+ pjsip_tx_data_dec_ref(inv->pending_bye); -+ inv->pending_bye = NULL; -+ } -+ pjsip_100rel_end_session(inv); -+ pjsip_timer_end_session(inv); -+ pjsip_dlg_dec_session(inv->dlg, &mod_inv.mod); -+ -+ /* Release the flip-flop pools */ -+ pj_pool_release(inv->pool_prov); -+ inv->pool_prov = NULL; -+ pj_pool_release(inv->pool_active); -+ inv->pool_active = NULL; -+ -+ pj_atomic_destroy(inv->ref_cnt); -+ inv->ref_cnt = NULL; -+} -+ -+/* -+ * Decrease INVITE session reference, destroy it when the reference count -+ * reaches zero. -+ */ -+PJ_DEF(pj_status_t) pjsip_inv_dec_ref( pjsip_inv_session *inv ) -+{ -+ pj_atomic_value_t ref_cnt; -+ -+ PJ_ASSERT_RETURN(inv && inv->ref_cnt, PJ_EINVAL); -+ -+ ref_cnt = pj_atomic_dec_and_get(inv->ref_cnt); -+ pj_assert( ref_cnt >= 0); -+ if (ref_cnt == 0) { -+ inv_session_destroy(inv); -+ return PJ_EGONE; -+ } -+ return PJ_SUCCESS; -+} -+ -+/* - * Set session state. - */ - static void inv_set_state(pjsip_inv_session *inv, pjsip_inv_state state, -@@ -261,27 +320,7 @@ - if (inv->state == PJSIP_INV_STATE_DISCONNECTED && - prev_state != PJSIP_INV_STATE_DISCONNECTED) - { -- if (inv->last_ack) { -- pjsip_tx_data_dec_ref(inv->last_ack); -- inv->last_ack = NULL; -- } -- if (inv->invite_req) { -- pjsip_tx_data_dec_ref(inv->invite_req); -- inv->invite_req = NULL; -- } -- if (inv->pending_bye) { -- pjsip_tx_data_dec_ref(inv->pending_bye); -- inv->pending_bye = NULL; -- } -- pjsip_100rel_end_session(inv); -- pjsip_timer_end_session(inv); -- pjsip_dlg_dec_session(inv->dlg, &mod_inv.mod); -- -- /* Release the flip-flop pools */ -- pj_pool_release(inv->pool_prov); -- inv->pool_prov = NULL; -- pj_pool_release(inv->pool_active); -- inv->pool_active = NULL; -+ pjsip_inv_dec_ref(inv); - } - } - -@@ -838,6 +877,12 @@ - inv = PJ_POOL_ZALLOC_T(dlg->pool, pjsip_inv_session); - pj_assert(inv != NULL); - -+ status = pj_atomic_create(dlg->pool, 0, &inv->ref_cnt); -+ if (status != PJ_SUCCESS) { -+ pjsip_dlg_dec_lock(dlg); -+ return status; -+ } -+ - inv->pool = dlg->pool; - inv->role = PJSIP_ROLE_UAC; - inv->state = PJSIP_INV_STATE_NULL; -@@ -881,6 +926,7 @@ - pjsip_100rel_attach(inv); - - /* Done */ -+ pjsip_inv_add_ref(inv); - *p_inv = inv; - - pjsip_dlg_dec_lock(dlg); -@@ -1471,6 +1517,12 @@ - inv = PJ_POOL_ZALLOC_T(dlg->pool, pjsip_inv_session); - pj_assert(inv != NULL); - -+ status = pj_atomic_create(dlg->pool, 0, &inv->ref_cnt); -+ if (status != PJ_SUCCESS) { -+ pjsip_dlg_dec_lock(dlg); -+ return status; -+ } -+ - inv->pool = dlg->pool; - inv->role = PJSIP_ROLE_UAS; - inv->state = PJSIP_INV_STATE_NULL; -@@ -1540,6 +1592,7 @@ - } - - /* Done */ -+ pjsip_inv_add_ref(inv); - pjsip_dlg_dec_lock(dlg); - *p_inv = inv; - Deleted: branches/1.0/package/pjsip/pjsip-0003-r5403-pjsip_IPV6_V6ONLY.patch =================================================================== --- branches/1.0/package/pjsip/pjsip-0003-r5403-pjsip_IPV6_V6ONLY.patch 2017-04-02 13:30:34 UTC (rev 8256) +++ branches/1.0/package/pjsip/pjsip-0003-r5403-pjsip_IPV6_V6ONLY.patch 2017-04-05 16:39:15 UTC (rev 8257) @@ -1,13 +0,0 @@ ---- a/pjlib/src/pj/sock_bsd.c -+++ b/pjlib/src/pj/sock_bsd.c -@@ -539,6 +539,10 @@ - pj_sock_setsockopt(*sock, pj_SOL_SOCKET(), pj_SO_NOSIGPIPE(), - &val, sizeof(val)); - } -+ if (af != PJ_AF_INET) { /* Linux Kernel 2.4.21; June 2003 */ -+ pj_sock_setsockopt(*sock, PJ_SOL_IPV6, IPV6_V6ONLY, -+ &val, sizeof(val)); -+ } - #if defined(PJ_IPHONE_OS_HAS_MULTITASKING_SUPPORT) && \ - PJ_IPHONE_OS_HAS_MULTITASKING_SUPPORT!=0 - if (type == pj_SOCK_DGRAM()) { Deleted: branches/1.0/package/pjsip/pjsip-0004-resolver.c-Prevent-SERVFAIL-from-marking-name-server.patch =================================================================== --- branches/1.0/package/pjsip/pjsip-0004-resolver.c-Prevent-SERVFAIL-from-marking-name-server.patch 2017-04-02 13:30:34 UTC (rev 8256) +++ branches/1.0/package/pjsip/pjsip-0004-resolver.c-Prevent-SERVFAIL-from-marking-name-server.patch 2017-04-05 16:39:15 UTC (rev 8257) @@ -1,48 +0,0 @@ -From a5efddbe9151e9ad99279e59566c86f8bc27d3a9 Mon Sep 17 00:00:00 2001 -From: George Joseph <gj...@di...> -Date: Wed, 7 Sep 2016 13:10:57 -0600 -Subject: [PATCH] resolver.c: Prevent SERVFAIL from marking name server bad - -A name server that returns "Server Failure" is indicating only that -the server couldn't process that particular request. We should NOT -assume that the name server is incapable of serving other requests. - -Here's the scenario we've been encountering... - -* 2 local name servers configured in resolv.conf. -* An OPTIONS request causes a request for A and AAAA records to go out - to both nameservers. -* The A responses both come back successfully resolved. -* Because of an issue at some upstream nameserver, the AAAA responses - for that particular query come back as "SERVFAIL" from both local - name servers. -* Both local servers are marked as bad and no further queries can be - sent until the 60 second ttl expires. Only previously cached results - can be used. -* In this case, 60 seconds is just enough time for another OPTIONS - request to go out to the same host so the cycle repeats. - -We could set the bad ttl really low but that also affects REFUSED and -NOTAUTH which probably DO signal a real server issue. Besides, even -a really low bad ttl would be an issue on a pbx. ---- - pjlib-util/src/pjlib-util/resolver.c | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -diff --git a/pjlib-util/src/pjlib-util/resolver.c b/pjlib-util/src/pjlib-util/resolver.c -index d277e4f..540f88f 100644 ---- a/pjlib-util/src/pjlib-util/resolver.c -+++ b/pjlib-util/src/pjlib-util/resolver.c -@@ -1384,8 +1384,7 @@ static void report_nameserver_status(pj_dns_resolver *resolver, - q_id = (pj_uint32_t)-1; - } - -- if (!pkt || rcode == PJ_DNS_RCODE_SERVFAIL || -- rcode == PJ_DNS_RCODE_REFUSED || -+ if (!pkt || rcode == PJ_DNS_RCODE_REFUSED || - rcode == PJ_DNS_RCODE_NOTAUTH) - { - is_good = PJ_FALSE; --- -2.7.4 - Deleted: branches/1.0/package/pjsip/pjsip-0005-Re-1969-Fix-crash-on-using-an-already-destroyed-SSL-.patch =================================================================== --- branches/1.0/package/pjsip/pjsip-0005-Re-1969-Fix-crash-on-using-an-already-destroyed-SSL-.patch 2017-04-02 13:30:34 UTC (rev 8256) +++ branches/1.0/package/pjsip/pjsip-0005-Re-1969-Fix-crash-on-using-an-already-destroyed-SSL-.patch 2017-04-05 16:39:15 UTC (rev 8257) @@ -1,164 +0,0 @@ -From 9e67e0d5c3fdc747530a956038b374fca4748b76 Mon Sep 17 00:00:00 2001 -From: riza <riza@localhost> -Date: Thu, 13 Oct 2016 09:02:50 +0000 -Subject: [PATCH 1/4] Re #1969: Fix crash on using an already destroyed SSL - socket. - ---- - pjlib/src/pj/ssl_sock_ossl.c | 66 ++++++++++++++++++++++++++++---------------- - 1 file changed, 42 insertions(+), 24 deletions(-) - -diff --git a/pjlib/src/pj/ssl_sock_ossl.c b/pjlib/src/pj/ssl_sock_ossl.c -index fa0db2d..ceab67a 100644 ---- a/pjlib/src/pj/ssl_sock_ossl.c -+++ b/pjlib/src/pj/ssl_sock_ossl.c -@@ -822,7 +822,10 @@ static void close_sockets(pj_ssl_sock_t *ssock) - pj_lock_acquire(ssock->write_mutex); - asock = ssock->asock; - if (asock) { -- ssock->asock = NULL; -+ // Don't set ssock->asock to NULL, as it may trigger assertion in -+ // send operation. This should be safe as active socket will simply -+ // return PJ_EINVALIDOP on any operation if it is already closed. -+ //ssock->asock = NULL; - ssock->sock = PJ_INVALID_SOCKET; - } - sock = ssock->sock; -@@ -841,9 +844,9 @@ static void close_sockets(pj_ssl_sock_t *ssock) - /* Reset SSL socket state */ - static void reset_ssl_sock_state(pj_ssl_sock_t *ssock) - { -+ pj_lock_acquire(ssock->write_mutex); - ssock->ssl_state = SSL_STATE_NULL; -- -- destroy_ssl(ssock); -+ pj_lock_release(ssock->write_mutex); - - close_sockets(ssock); - -@@ -1612,6 +1615,21 @@ static pj_status_t do_handshake(pj_ssl_sock_t *ssock) - return PJ_EPENDING; - } - -+static void ssl_on_destroy(void *arg) -+{ -+ pj_pool_t *pool = NULL; -+ pj_ssl_sock_t *ssock = (pj_ssl_sock_t*)arg; -+ -+ destroy_ssl(ssock); -+ -+ pj_lock_destroy(ssock->write_mutex); -+ -+ pool = ssock->pool; -+ ssock->pool = NULL; -+ if (pool) -+ pj_pool_release(pool); -+} -+ - - /* - ******************************************************************* -@@ -1830,7 +1848,7 @@ static pj_bool_t asock_on_accept_complete (pj_activesock_t *asock, - - /* Create new SSL socket instance */ - status = pj_ssl_sock_create(ssock_parent->pool, -- &ssock_parent->newsock_param, &ssock); -+ &ssock_parent->newsock_param, &ssock); - if (status != PJ_SUCCESS) - goto on_return; - -@@ -1906,12 +1924,10 @@ static pj_bool_t asock_on_accept_complete (pj_activesock_t *asock, - if (status != PJ_SUCCESS) - goto on_return; - -- /* Temporarily add ref the group lock until active socket creation, -- * to make sure that group lock is destroyed if the active socket -- * creation fails. -- */ - pj_grp_lock_add_ref(glock); - asock_cfg.grp_lock = ssock->param.grp_lock = glock; -+ pj_grp_lock_add_handler(ssock->param.grp_lock, ssock->pool, ssock, -+ ssl_on_destroy); - } - - pj_bzero(&asock_cb, sizeof(asock_cb)); -@@ -1927,11 +1943,6 @@ static pj_bool_t asock_on_accept_complete (pj_activesock_t *asock, - ssock, - &ssock->asock); - -- /* This will destroy the group lock if active socket creation fails */ -- if (asock_cfg.grp_lock) { -- pj_grp_lock_dec_ref(asock_cfg.grp_lock); -- } -- - if (status != PJ_SUCCESS) - goto on_return; - -@@ -2251,17 +2262,26 @@ PJ_DEF(pj_status_t) pj_ssl_sock_create (pj_pool_t *pool, - /* Create secure socket mutex */ - status = pj_lock_create_recursive_mutex(pool, pool->obj_name, - &ssock->write_mutex); -- if (status != PJ_SUCCESS) -+ if (status != PJ_SUCCESS) { -+ pj_pool_release(pool); - return status; -+ } - - /* Init secure socket param */ - pj_ssl_sock_param_copy(pool, &ssock->param, param); -+ -+ if (ssock->param.grp_lock) { -+ pj_grp_lock_add_ref(ssock->param.grp_lock); -+ pj_grp_lock_add_handler(ssock->param.grp_lock, pool, ssock, -+ ssl_on_destroy); -+ } -+ - ssock->param.read_buffer_size = ((ssock->param.read_buffer_size+7)>>3)<<3; - if (!ssock->param.timer_heap) { - PJ_LOG(3,(ssock->pool->obj_name, "Warning: timer heap is not " - "available. It is recommended to supply one to avoid " -- "a race condition if more than one worker threads " -- "are used.")); -+ "a race condition if more than one worker threads " -+ "are used.")); - } - - /* Finally */ -@@ -2277,8 +2297,6 @@ PJ_DEF(pj_status_t) pj_ssl_sock_create (pj_pool_t *pool, - */ - PJ_DEF(pj_status_t) pj_ssl_sock_close(pj_ssl_sock_t *ssock) - { -- pj_pool_t *pool; -- - PJ_ASSERT_RETURN(ssock, PJ_EINVAL); - - if (!ssock->pool) -@@ -2290,12 +2308,11 @@ PJ_DEF(pj_status_t) pj_ssl_sock_close(pj_ssl_sock_t *ssock) - } - - reset_ssl_sock_state(ssock); -- pj_lock_destroy(ssock->write_mutex); -- -- pool = ssock->pool; -- ssock->pool = NULL; -- if (pool) -- pj_pool_release(pool); -+ if (ssock->param.grp_lock) { -+ pj_grp_lock_dec_ref(ssock->param.grp_lock); -+ } else { -+ ssl_on_destroy(ssock); -+ } - - return PJ_SUCCESS; - } -@@ -2782,6 +2799,7 @@ pj_ssl_sock_start_accept2(pj_ssl_sock_t *ssock, - - /* Start accepting */ - pj_ssl_sock_param_copy(pool, &ssock->newsock_param, newsock_param); -+ ssock->newsock_param.grp_lock = NULL; - status = pj_activesock_start_accept(ssock->asock, pool); - if (status != PJ_SUCCESS) - goto on_error; --- -2.7.4 - Deleted: branches/1.0/package/pjsip/pjsip-0006-r5471-svn-backport-Various-fixes-for-DNS-IPv6.patch =================================================================== --- branches/1.0/package/pjsip/pjsip-0006-r5471-svn-backport-Various-fixes-for-DNS-IPv6.patch 2017-04-02 13:30:34 UTC (rev 8256) +++ branches/1.0/package/pjsip/pjsip-0006-r5471-svn-backport-Various-fixes-for-DNS-IPv6.patch 2017-04-05 16:39:15 UTC (rev 8257) @@ -1,134 +0,0 @@ -From 2ab7a9f67caf73be3f2215473f72882cfaef4972 Mon Sep 17 00:00:00 2001 -From: Richard Mudgett <rmu...@di...> -Date: Fri, 28 Oct 2016 12:11:30 -0500 -Subject: [PATCH 1/3] r5471 svn backport Various fixes for DNS IPv6 - -Fixed #1974: Various fixes for DNS IPv6 ---- - pjlib-util/src/pjlib-util/resolver.c | 11 +++++------ - pjlib-util/src/pjlib-util/srv_resolver.c | 17 +++++++++++++++-- - pjsip/src/pjsip/sip_resolve.c | 14 +++++++------- - 3 files changed, 27 insertions(+), 15 deletions(-) - -diff --git a/pjlib-util/src/pjlib-util/resolver.c b/pjlib-util/src/pjlib-util/resolver.c -index e5e1bed..d24ef9d 100644 ---- a/pjlib-util/src/pjlib-util/resolver.c -+++ b/pjlib-util/src/pjlib-util/resolver.c -@@ -835,7 +835,7 @@ PJ_DEF(pj_status_t) pj_dns_resolver_start_query( pj_dns_resolver *resolver, - pj_time_val now; - struct res_key key; - struct cached_res *cache; -- pj_dns_async_query *q; -+ pj_dns_async_query *q, *p_q = NULL; - pj_uint32_t hval; - pj_status_t status = PJ_SUCCESS; - -@@ -849,9 +849,6 @@ PJ_DEF(pj_status_t) pj_dns_resolver_start_query( pj_dns_resolver *resolver, - /* Check type */ - PJ_ASSERT_RETURN(type > 0 && type < 0xFFFF, PJ_EINVAL); - -- if (p_query) -- *p_query = NULL; -- - /* Build resource key for looking up hash tables */ - init_res_key(&key, type, name); - -@@ -970,10 +967,12 @@ PJ_DEF(pj_status_t) pj_dns_resolver_start_query( pj_dns_resolver *resolver, - pj_hash_set_np(resolver->hquerybyres, &q->key, sizeof(q->key), - 0, q->hbufkey, q); - -- if (p_query) -- *p_query = q; -+ p_q = q; - - on_return: -+ if (p_query) -+ *p_query = p_q; -+ - pj_mutex_unlock(resolver->mutex); - return status; - } -diff --git a/pjlib-util/src/pjlib-util/srv_resolver.c b/pjlib-util/src/pjlib-util/srv_resolver.c -index 02672aa..ff9c979 100644 ---- a/pjlib-util/src/pjlib-util/srv_resolver.c -+++ b/pjlib-util/src/pjlib-util/srv_resolver.c -@@ -187,9 +187,12 @@ PJ_DEF(pj_status_t) pj_dns_srv_cancel_query(pj_dns_srv_async_query *query, - has_pending = PJ_TRUE; - } - if (srv->q_aaaa) { -- pj_dns_resolver_cancel_query(srv->q_aaaa, PJ_FALSE); -+ /* Check if it is a dummy query. */ -+ if (srv->q_aaaa != (pj_dns_async_query*)0x1) { -+ pj_dns_resolver_cancel_query(srv->q_aaaa, PJ_FALSE); -+ has_pending = PJ_TRUE; -+ } - srv->q_aaaa = NULL; -- has_pending = PJ_TRUE; - } - } - -@@ -485,12 +488,22 @@ static pj_status_t resolve_hostnames(pj_dns_srv_async_query *query_job) - srv->common.type = PJ_DNS_TYPE_A; - srv->common_aaaa.type = PJ_DNS_TYPE_AAAA; - srv->parent = query_job; -+ srv->q_a = NULL; -+ srv->q_aaaa = NULL; - - status = PJ_SUCCESS; - - /* Start DNA A record query */ - if ((query_job->option & PJ_DNS_SRV_RESOLVE_AAAA_ONLY) == 0) - { -+ if ((query_job->option & PJ_DNS_SRV_RESOLVE_AAAA) != 0) { -+ /* If there will be DNS AAAA query too, let's setup -+ * a dummy one here, otherwise app callback may be called -+ * immediately (before DNS AAAA query is sent) when -+ * DNS A record is available in the cache. -+ */ -+ srv->q_aaaa = (pj_dns_async_query*)0x1; -+ } - status = pj_dns_resolver_start_query(query_job->resolver, - &srv->target_name, - PJ_DNS_TYPE_A, 0, -diff --git a/pjsip/src/pjsip/sip_resolve.c b/pjsip/src/pjsip/sip_resolve.c -index ed326ba..3f3654d 100644 ---- a/pjsip/src/pjsip/sip_resolve.c -+++ b/pjsip/src/pjsip/sip_resolve.c -@@ -452,7 +452,7 @@ PJ_DEF(void) pjsip_resolve( pjsip_resolver_t *resolver, - } - - /* Resolve DNS AAAA record if address family is not fixed to IPv4 */ -- if (af != pj_AF_INET()) { -+ if (af != pj_AF_INET() && status == PJ_SUCCESS) { - status = pj_dns_resolver_start_query(resolver->res, - &query->naptr[0].name, - PJ_DNS_TYPE_AAAA, 0, -@@ -530,9 +530,9 @@ static void dns_a_callback(void *user_data, - - ++srv->count; - } -- -- } else { -- -+ } -+ -+ if (status != PJ_SUCCESS) { - char errmsg[PJ_ERR_MSG_SIZE]; - - /* Log error */ -@@ -593,9 +593,9 @@ static void dns_aaaa_callback(void *user_data, - - ++srv->count; - } -- -- } else { -- -+ } -+ -+ if (status != PJ_SUCCESS) { - char errmsg[PJ_ERR_MSG_SIZE]; - - /* Log error */ --- -1.7.9.5 - Deleted: branches/1.0/package/pjsip/pjsip-0006-r5473-svn-backport-Fix-pending-query.patch =================================================================== --- branches/1.0/package/pjsip/pjsip-0006-r5473-svn-backport-Fix-pending-query.patch 2017-04-02 13:30:34 UTC (rev 8256) +++ branches/1.0/package/pjsip/pjsip-0006-r5473-svn-backport-Fix-pending-query.patch 2017-04-05 16:39:15 UTC (rev 8257) @@ -1,28 +0,0 @@ -From 509d4339747f11cfbde3a0acc447ef5d521eea93 Mon Sep 17 00:00:00 2001 -From: Richard Mudgett <rmu...@di...> -Date: Fri, 28 Oct 2016 12:12:28 -0500 -Subject: [PATCH 2/3] r5473 svn backport Fix pending query - -Re #1974: -If there is a pending query, set the return value to that query (instead of NULL) - -Thanks to Richard Mudgett for the patch. ---- - pjlib-util/src/pjlib-util/resolver.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/pjlib-util/src/pjlib-util/resolver.c b/pjlib-util/src/pjlib-util/resolver.c -index d24ef9d..fe687b7 100644 ---- a/pjlib-util/src/pjlib-util/resolver.c -+++ b/pjlib-util/src/pjlib-util/resolver.c -@@ -940,6 +940,7 @@ PJ_DEF(pj_status_t) pj_dns_resolver_start_query( pj_dns_resolver *resolver, - /* Done. This child query will be notified once the "parent" - * query completes. - */ -+ p_q = nq; - status = PJ_SUCCESS; - goto on_return; - } --- -1.7.9.5 - Deleted: branches/1.0/package/pjsip/pjsip-0006-r5475-svn-backport-Remove-DNS-cache-entry.patch =================================================================== --- branches/1.0/package/pjsip/pjsip-0006-r5475-svn-backport-Remove-DNS-cache-entry.patch 2017-04-02 13:30:34 UTC (rev 8256) +++ branches/1.0/package/pjsip/pjsip-0006-r5475-svn-backport-Remove-DNS-cache-entry.patch 2017-04-05 16:39:15 UTC (rev 8257) @@ -1,70 +0,0 @@ -From 46e1cfa18853a38b7fcdebad782710c5db676657 Mon Sep 17 00:00:00 2001 -From: Richard Mudgett <rmu...@di...> -Date: Fri, 28 Oct 2016 12:15:44 -0500 -Subject: [PATCH 3/3] r5475 svn backport Remove DNS cache entry - -Re #1974: Remove DNS cache entry from resolver's hash table when app callback has a reference. - -Thanks to Richard Mudgett for the patch. ---- - pjlib-util/src/pjlib-util/resolver.c | 29 +++++++++++++++-------------- - 1 file changed, 15 insertions(+), 14 deletions(-) - -diff --git a/pjlib-util/src/pjlib-util/resolver.c b/pjlib-util/src/pjlib-util/resolver.c -index fe687b7..52b7655 100644 ---- a/pjlib-util/src/pjlib-util/resolver.c -+++ b/pjlib-util/src/pjlib-util/resolver.c -@@ -1444,10 +1444,12 @@ static void update_res_cache(pj_dns_resolver *resolver, - if (ttl > resolver->settings.cache_max_ttl) - ttl = resolver->settings.cache_max_ttl; - -+ /* Get a cache response entry */ -+ cache = (struct cached_res *) pj_hash_get(resolver->hrescache, key, -+ sizeof(*key), &hval); -+ - /* If TTL is zero, clear the same entry in the hash table */ - if (ttl == 0) { -- cache = (struct cached_res *) pj_hash_get(resolver->hrescache, key, -- sizeof(*key), &hval); - /* Remove the entry before releasing its pool (see ticket #1710) */ - pj_hash_set(NULL, resolver->hrescache, key, sizeof(*key), hval, NULL); - -@@ -1457,24 +1459,23 @@ static void update_res_cache(pj_dns_resolver *resolver, - return; - } - -- /* Get a cache response entry */ -- cache = (struct cached_res *) pj_hash_get(resolver->hrescache, key, -- sizeof(*key), &hval); - if (cache == NULL) { - cache = alloc_entry(resolver); -- } else if (cache->ref_cnt > 1) { -- /* When cache entry is being used by callback (to app), just decrement -- * ref_cnt so it will be freed after the callback returns and allocate -- * new entry. -- */ -- cache->ref_cnt--; -- cache = alloc_entry(resolver); - } else { - /* Remove the entry before resetting its pool (see ticket #1710) */ - pj_hash_set(NULL, resolver->hrescache, key, sizeof(*key), hval, NULL); - -- /* Reset cache to avoid bloated cache pool */ -- reset_entry(&cache); -+ if (cache->ref_cnt > 1) { -+ /* When cache entry is being used by callback (to app), -+ * just decrement ref_cnt so it will be freed after -+ * the callback returns and allocate new entry. -+ */ -+ cache->ref_cnt--; -+ cache = alloc_entry(resolver); -+ } else { -+ /* Reset cache to avoid bloated cache pool */ -+ reset_entry(&cache); -+ } - } - - /* Duplicate the packet. --- -1.7.9.5 - Deleted: branches/1.0/package/pjsip/pjsip-0006-r5477-svn-backport-Fix-DNS-write-on-freed-memory.patch =================================================================== --- branches/1.0/package/pjsip/pjsip-0006-r5477-svn-backport-Fix-DNS-write-on-freed-memory.patch 2017-04-02 13:30:34 UTC (rev 8256) +++ branches/1.0/package/pjsip/pjsip-0006-r5477-svn-backport-Fix-DNS-write-on-freed-memory.patch 2017-04-05 16:39:15 UTC (rev 8257) @@ -1,33 +0,0 @@ -From 732a997010d60fe93a7453e809672386749b0afc Mon Sep 17 00:00:00 2001 -From: Richard Mudgett <rmu...@di...> -Date: Tue, 1 Nov 2016 12:55:31 -0500 -Subject: [PATCH] r5477 svn backport Fix DNS write on freed memory. - -Re #1974: Fix DNS write on freed memory. -Thanks to Richard Mudgett for the patch. ---- - pjlib-util/src/pjlib-util/resolver.c | 8 +++++++- - 1 file changed, 7 insertions(+), 1 deletion(-) - -diff --git a/pjlib-util/src/pjlib-util/resolver.c b/pjlib-util/src/pjlib-util/resolver.c -index 52b7655..365772e 100644 ---- a/pjlib-util/src/pjlib-util/resolver.c -+++ b/pjlib-util/src/pjlib-util/resolver.c -@@ -908,7 +908,13 @@ PJ_DEF(pj_status_t) pj_dns_resolver_start_query( pj_dns_resolver *resolver, - /* Must return PJ_SUCCESS */ - status = PJ_SUCCESS; - -- goto on_return; -+ /* -+ * We cannot write to *p_query after calling cb because what -+ * p_query points to may have been freed by cb. -+ * Refer to ticket #1974. -+ */ -+ pj_mutex_unlock(resolver->mutex); -+ return status; - } - - /* At this point, we have a cached entry, but this entry has expired. --- -1.7.9.5 - Added: branches/1.0/package/pjsip/pjsip-0010-evsub-Add-pjsip_evsub_set_uas_timeout.patch =================================================================== --- branches/1.0/package/pjsip/pjsip-0010-evsub-Add-pjsip_evsub_set_uas_timeout.patch (rev 0) +++ branches/1.0/package/pjsip/pjsip-0010-evsub-Add-pjsip_evsub_set_uas_timeout.patch 2017-04-05 16:39:15 UTC (rev 8257) @@ -0,0 +1,84 @@ +From b7af9e6639f29feb4db6d0866c98e552b025ec96 Mon Sep 17 00:00:00 2001 +From: George Joseph <gj...@di...> +Date: Mon, 6 Feb 2017 15:39:29 -0700 +Subject: [PATCH] evsub: Add pjsip_evsub_set_uas_timeout. + +A UAS which needs to recreate incoming subscriptions from a persistent +store can call pjsip_dlg_create_uas_and_inc_lock and +pjsip_evsub_create_uas as long as they've persisted the +correct data but since the timer is triggered by an incoming subscribe, +it's never set and the subscription never expires. + +* Add pjsip_evsub_set_uas_timeout which is just a wrapper around + evsub.c:set_timeout(sub, TIMER_TYPE_UAS_TIMEOUT, seconds) + +* Also, fixed copy-paste error in pjsip_sub_state_hdr_print when + printing retry-after parameter. +--- + pjsip/include/pjsip-simple/evsub.h | 14 ++++++++++++++ + pjsip/src/pjsip-simple/evsub.c | 10 ++++++++++ + pjsip/src/pjsip-simple/evsub_msg.c | 2 +- + 3 files changed, 25 insertions(+), 1 deletion(-) + +diff --git a/pjsip/include/pjsip-simple/evsub.h b/pjsip/include/pjsip-simple/evsub.h +index 82e0a7c..45e6411 100644 +--- a/pjsip/include/pjsip-simple/evsub.h ++++ b/pjsip/include/pjsip-simple/evsub.h +@@ -511,6 +511,20 @@ PJ_DEF(pj_status_t) pjsip_evsub_add_ref(pjsip_evsub *sub); + PJ_DEF(pj_status_t) pjsip_evsub_dec_ref(pjsip_evsub *sub); + + ++/** ++ * Sets, resets or cancels the UAS subscription timeout. ++ * ++ * If there is an existing timer, it is cancelled before any ++ * other action. ++ * ++ * A timeout of 0 is ignored except that any existing timer ++ * is cancelled. ++ * ++ * @param sub The server subscription instance. ++ * @param seconds The new timeout. ++ */ ++PJ_DEF(void) pjsip_evsub_set_uas_timeout(pjsip_evsub *sub, pj_int32_t seconds); ++ + + PJ_END_DECL + +diff --git a/pjsip/src/pjsip-simple/evsub.c b/pjsip/src/pjsip-simple/evsub.c +index 3fe4b49..6918a8c 100644 +--- a/pjsip/src/pjsip-simple/evsub.c ++++ b/pjsip/src/pjsip-simple/evsub.c +@@ -530,6 +530,16 @@ static void set_timer( pjsip_evsub *sub, int timer_id, + + + /* ++ * Set event subscription UAS timout. ++ */ ++PJ_DEF(void) pjsip_evsub_set_uas_timeout(pjsip_evsub *sub, pj_int32_t seconds) ++{ ++ PJ_ASSERT_RETURN(sub != NULL, PJ_EINVAL); ++ set_timer(sub, TIMER_TYPE_UAS_TIMEOUT, seconds); ++} ++ ++ ++/* + * Destructor. + */ + static void evsub_on_destroy(void *obj) +diff --git a/pjsip/src/pjsip-simple/evsub_msg.c b/pjsip/src/pjsip-simple/evsub_msg.c +index b44a715..b37db1c 100644 +--- a/pjsip/src/pjsip-simple/evsub_msg.c ++++ b/pjsip/src/pjsip-simple/evsub_msg.c +@@ -179,7 +179,7 @@ static int pjsip_sub_state_hdr_print(pjsip_sub_state_hdr *hdr, + } + if (hdr->retry_after >= 0) { + pj_memcpy(p, ";retry-after=", 13); +- p += 9; ++ p += 13; + printed = pj_utoa(hdr->retry_after, p); + p += printed; + } +-- +2.9.3 + Added: branches/1.0/package/pjsip/pjsip-0011-r5554-svn-backport-Increase-SENDER_WIDTH-column-size.patch =================================================================== --- branches/1.0/package/pjsip/pjsip-0011-r5554-svn-backport-Increase-SENDER_WIDTH-column-size.patch (rev 0) +++ branches/1.0/package/pjsip/pjsip-0011-r5554-svn-backport-Increase-SENDER_WIDTH-column-size.patch 2017-04-05 16:39:15 UTC (rev 8257) @@ -0,0 +1,77 @@ +From df1ceb301c8a17969c467e3cf00246cfc28d1732 Mon Sep 17 00:00:00 2001 +From: Richard Mudgett <rmu...@di...> +Date: Mon, 20 Feb 2017 12:19:05 -0600 +Subject: [PATCH 1/5] r5554 svn backport Increase SENDER_WIDTH column size for + 64-bit systems. + +Re #1994 (misc): Make the log's sender and thread width a compile-time configurable setting. + +Thanks to Richard Mudgett for the suggestion. +--- + pjlib/include/pj/config.h | 27 +++++++++++++++++++++++++++ + pjlib/src/pj/log.c | 4 ++-- + 2 files changed, 29 insertions(+), 2 deletions(-) + +diff --git a/pjlib/include/pj/config.h b/pjlib/include/pj/config.h +index 079d69b..3523f50 100644 +--- a/pjlib/include/pj/config.h ++++ b/pjlib/include/pj/config.h +@@ -472,6 +472,33 @@ + #endif + + /** ++ * Log sender width. ++ * ++ * Default: 22 (for 64-bit machines), 14 otherwise ++ */ ++#ifndef PJ_LOG_SENDER_WIDTH ++# if PJ_HAS_STDINT_H ++# include <stdint.h> ++# if (UINTPTR_MAX == 0xffffffffffffffff) ++# define PJ_LOG_SENDER_WIDTH 22 ++# else ++# define PJ_LOG_SENDER_WIDTH 14 ++# endif ++# else ++# define PJ_LOG_SENDER_WIDTH 14 ++# endif ++#endif ++ ++/** ++ * Log thread name width. ++ * ++ * Default: 12 ++ */ ++#ifndef PJ_LOG_THREAD_WIDTH ++# define PJ_LOG_THREAD_WIDTH 12 ++#endif ++ ++/** + * Colorfull terminal (for logging etc). + * + * Default: 1 +diff --git a/pjlib/src/pj/log.c b/pjlib/src/pj/log.c +index 293ad46..cf7ac37 100644 +--- a/pjlib/src/pj/log.c ++++ b/pjlib/src/pj/log.c +@@ -380,7 +380,7 @@ PJ_DEF(void) pj_log( const char *sender, int level, + pre += pj_utoa_pad(ptime.msec, pre, 3, '0'); + } + if (log_decor & PJ_LOG_HAS_SENDER) { +- enum { SENDER_WIDTH = 14 }; ++ enum { SENDER_WIDTH = PJ_LOG_SENDER_WIDTH }; + pj_size_t sender_len = strlen(sender); + if (pre!=log_buffer) *pre++ = ' '; + if (sender_len <= SENDER_WIDTH) { +@@ -395,7 +395,7 @@ PJ_DEF(void) pj_log( const char *sender, int level, + } + } + if (log_decor & PJ_LOG_HAS_THREAD_ID) { +- enum { THREAD_WIDTH = 12 }; ++ enum { THREAD_WIDTH = PJ_LOG_THREAD_WIDTH }; + const char *thread_name = pj_thread_get_name(pj_thread_this()); + pj_size_t thread_len = strlen(thread_name); + *pre++ = ' '; +-- +2.7.4 + Added: branches/1.0/package/pjsip/pjsip-0013-r5559-svn-backport-Fix-to-resolve-DNS-SRV-crashes.patch =================================================================== --- branches/1.0/package/pjsip/pjsip-0013-r5559-svn-backport-Fix-to-resolve-DNS-SRV-crashes.patch (rev 0) +++ branches/1.0/package/pjsip/pjsip-0013-r5559-svn-backport-Fix-to-resolve-DNS-SRV-crashes.patch 2017-04-05 16:39:15 UTC (rev 8257) @@ -0,0 +1,112 @@ +From d9d52f005f6d0242ea84e7c59ad6b25f052c8485 Mon Sep 17 00:00:00 2001 +From: Richard Mudgett <rmu...@di...> +Date: Mon, 20 Feb 2017 12:05:32 -0600 +Subject: [PATCH 3/5] r5559 svn backport Fix to resolve DNS SRV crashes. + +Re #1994 (misc): Don't try to resolve a DNS SRV query that is already considered resolved. +Thanks to Richard Mudgett for the patch. + +srv_resolver.c: Don't try to send query if already considered resolved. + +* In resolve_hostnames() don't try to resolve a query that is already +considered resolved. + +* In resolve_hostnames() fix DNS typo in comments. + +* In build_server_entries() move a common expression assigning to cnt +earlier. + +sip_transport.c: Fix tdata object name to actually contain the pointer. + +It helps if the logs referencing a tdata object buffer actually have +a name that includes the correct pointer as part of the name. Also +since the tdata has its own pool it helps if any logs referencing the +pool have the same name as the tdata object. This change brings tdata +logging in line with how tsx objects are named. +--- + pjlib-util/src/pjlib-util/srv_resolver.c | 18 +++++++++++++----- + pjsip/src/pjsip/sip_transport.c | 3 ++- + 2 files changed, 15 insertions(+), 6 deletions(-) + +diff --git a/pjlib-util/src/pjlib-util/srv_resolver.c b/pjlib-util/src/pjlib-util/srv_resolver.c +index 8a2f7e1..84ad3f6 100644 +--- a/pjlib-util/src/pjlib-util/srv_resolver.c ++++ b/pjlib-util/src/pjlib-util/srv_resolver.c +@@ -407,8 +407,9 @@ static void build_server_entries(pj_dns_srv_async_query *query_job, + for (i=0; i<query_job->srv_cnt; ++i) { + pj_in_addr addr; + pj_in6_addr addr6; ++ unsigned cnt = query_job->srv[i].addr_cnt; + +- if (query_job->srv[i].addr_cnt != 0) { ++ if (cnt != 0) { + /* IP address already resolved */ + continue; + } +@@ -417,7 +418,6 @@ static void build_server_entries(pj_dns_srv_async_query *query_job, + pj_inet_pton(pj_AF_INET(), &query_job->srv[i].target_name, + &addr) == PJ_SUCCESS) + { +- unsigned cnt = query_job->srv[i].addr_cnt; + pj_sockaddr_init(pj_AF_INET(), &query_job->srv[i].addr[cnt], + NULL, query_job->srv[i].port); + query_job->srv[i].addr[cnt].ipv4.sin_addr = addr; +@@ -427,7 +427,6 @@ static void build_server_entries(pj_dns_srv_async_query *query_job, + pj_inet_pton(pj_AF_INET6(), &query_job->srv[i].target_name, + &addr6) == PJ_SUCCESS) + { +- unsigned cnt = query_job->srv[i].addr_cnt; + pj_sockaddr_init(pj_AF_INET6(), &query_job->srv[i].addr[cnt], + NULL, query_job->srv[i].port); + query_job->srv[i].addr[cnt].ipv6.sin6_addr = addr6; +@@ -480,6 +479,15 @@ static pj_status_t resolve_hostnames(pj_dns_srv_async_query *query_job) + for (i=0; i<query_job->srv_cnt; ++i) { + struct srv_target *srv = &query_job->srv[i]; + ++ if (srv->addr_cnt != 0) { ++ /* ++ * This query is already counted as resolved because of the ++ * additional records in the SRV response or the target name ++ * is an IP address exception in build_server_entries(). ++ */ ++ continue; ++ } ++ + PJ_LOG(5, (query_job->objname, + "Starting async DNS A query_job for %.*s", + (int)srv->target_name.slen, +@@ -493,7 +501,7 @@ static pj_status_t resolve_hostnames(pj_dns_srv_async_query *query_job) + + status = PJ_SUCCESS; + +- /* Start DNA A record query */ ++ /* Start DNS A record query */ + if ((query_job->option & PJ_DNS_SRV_RESOLVE_AAAA_ONLY) == 0) + { + if ((query_job->option & PJ_DNS_SRV_RESOLVE_AAAA) != 0) { +@@ -511,7 +519,7 @@ static pj_status_t resolve_hostnames(pj_dns_srv_async_query *query_job) + &srv->common, &srv->q_a); + } + +- /* Start DNA AAAA record query */ ++ /* Start DNS AAAA record query */ + if (status == PJ_SUCCESS && + (query_job->option & PJ_DNS_SRV_RESOLVE_AAAA) != 0) + { +diff --git a/pjsip/src/pjsip/sip_transport.c b/pjsip/src/pjsip/sip_transport.c +index d672a6d..6dd14d1 100644 +--- a/pjsip/src/pjsip/sip_transport.c ++++ b/pjsip/src/pjsip/sip_transport.c +@@ -422,7 +422,8 @@ PJ_DEF(pj_status_t) pjsip_tx_data_create( pjsip_tpmgr *mgr, + tdata = PJ_POOL_ZALLOC_T(pool, pjsip_tx_data); + tdata->pool = pool; + tdata->mgr = mgr; +- pj_memcpy(tdata->obj_name, pool->obj_name, PJ_MAX_OBJ_NAME); ++ pj_ansi_snprintf(tdata->obj_name, sizeof(tdata->obj_name), "tdta%p", tdata); ++ pj_memcpy(pool->obj_name, tdata->obj_name, sizeof(pool->obj_name)); + + status = pj_atomic_create(tdata->pool, 0, &tdata->ref_cnt); + if (status != PJ_SUCCESS) { +-- +2.7.4 + Modified: branches/1.0/package/pjsip/pjsip.mk =================================================================== --- branches/1.0/package/pjsip/pjsip.mk 2017-04-02 13:30:34 UTC (rev 8256) +++ branches/1.0/package/pjsip/pjsip.mk 2017-04-05 16:39:15 UTC (rev 8257) @@ -4,13 +4,11 @@ # ################################################################################ -PJSIP_VERSION = 2.5.5 +PJSIP_VERSION = 2.6 PJSIP_SOURCE = pjproject-$(PJSIP_VERSION).tar.bz2 PJSIP_SITE = http://www.pjsip.org/release/$(PJSIP_VERSION) PJSIP_INSTALL_STAGING = YES -PJSIP_DEPENDENCIES = libsrtp - define PJSIP_CUSTOM_CONFIG cp package/pjsip/asterisk-config_site.h $(@D)/pjlib/include/pj/config_site.h endef @@ -31,7 +29,6 @@ --disable-g722-codec \ --disable-g7221-codec \ --disable-opencore-amr \ - --disable-webrtc \ --disable-silk \ --disable-opus \ --disable-video \ @@ -46,7 +43,8 @@ --disable-openh264 \ --disable-ipp \ --without-external-pa \ - --with-external-srtp + --without-external-srtp \ + --without-external-webrtc ifeq ($(BR2_PACKAGE_OPENSSL),y) PJSIP_CONF_OPT += --with-ssl=$(STAGING_DIR)/usr This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <abe...@us...> - 2017-05-25 15:37:45
|
Revision: 8338 http://sourceforge.net/p/astlinux/code/8338 Author: abelbeck Date: 2017-05-25 15:37:44 +0000 (Thu, 25 May 2017) Log Message: ----------- libsodium, version bump to 1.0.12 and dnscrypt-proxy, version bump to 1.9.5 Modified Paths: -------------- branches/1.0/package/dnscrypt-proxy/dnscrypt-proxy.mk branches/1.0/package/libsodium/libsodium.mk Modified: branches/1.0/package/dnscrypt-proxy/dnscrypt-proxy.mk =================================================================== --- branches/1.0/package/dnscrypt-proxy/dnscrypt-proxy.mk 2017-05-25 15:04:38 UTC (rev 8337) +++ branches/1.0/package/dnscrypt-proxy/dnscrypt-proxy.mk 2017-05-25 15:37:44 UTC (rev 8338) @@ -3,7 +3,7 @@ # dnscrypt-proxy # ############################################################# -DNSCRYPT_PROXY_VERSION = 1.9.1 +DNSCRYPT_PROXY_VERSION = 1.9.5 DNSCRYPT_PROXY_SOURCE = dnscrypt-proxy-$(DNSCRYPT_PROXY_VERSION).tar.bz2 DNSCRYPT_PROXY_SITE = https://download.dnscrypt.org/dnscrypt-proxy Modified: branches/1.0/package/libsodium/libsodium.mk =================================================================== --- branches/1.0/package/libsodium/libsodium.mk 2017-05-25 15:04:38 UTC (rev 8337) +++ branches/1.0/package/libsodium/libsodium.mk 2017-05-25 15:37:44 UTC (rev 8338) @@ -3,7 +3,7 @@ # libsodium # ############################################################# -LIBSODIUM_VERSION = 1.0.11 +LIBSODIUM_VERSION = 1.0.12 LIBSODIUM_SOURCE = libsodium-$(LIBSODIUM_VERSION).tar.gz LIBSODIUM_SITE = https://github.com/jedisct1/libsodium/releases/download/$(LIBSODIUM_VERSION) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <abe...@us...> - 2017-06-07 17:59:58
|
Revision: 8381 http://sourceforge.net/p/astlinux/code/8381 Author: abelbeck Date: 2017-06-07 17:59:55 +0000 (Wed, 07 Jun 2017) Log Message: ----------- asterisk, version bump to 13.16.0, added 4 pjsip patches Modified Paths: -------------- branches/1.0/package/asterisk/asterisk-13-configure-menuselect-cross-fix.patch branches/1.0/package/asterisk/asterisk-13-extension-changed-verbosity-chan_sip.patch branches/1.0/package/asterisk/asterisk.mk Added Paths: ----------- branches/1.0/package/asterisk/asterisk-13-configure-have-usable-eventfd.patch branches/1.0/package/pjsip/pjsip-0035-r5572-svn-backport-dialog-transaction-deadlock.patch branches/1.0/package/pjsip/pjsip-0036-r5573-svn-backport-ua-pjsua-transaction-deadlock.patch branches/1.0/package/pjsip/pjsip-0037-r5576-svn-backport-session-timer-crash.patch branches/1.0/package/pjsip/pjsip-0048-r5576-svn-backport-tls-crash.patch Added: branches/1.0/package/asterisk/asterisk-13-configure-have-usable-eventfd.patch =================================================================== --- branches/1.0/package/asterisk/asterisk-13-configure-have-usable-eventfd.patch (rev 0) +++ branches/1.0/package/asterisk/asterisk-13-configure-have-usable-eventfd.patch 2017-06-07 17:59:55 UTC (rev 8381) @@ -0,0 +1,12 @@ +--- asterisk-13.16.0/configure.ac.orig 2017-06-07 11:56:41.261126679 -0500 ++++ asterisk-13.16.0/configure.ac 2017-06-07 12:01:48.732815227 -0500 +@@ -1104,7 +1104,8 @@ + [return eventfd(0, EFD_NONBLOCK | EFD_SEMAPHORE) == -1;])], + AC_MSG_RESULT(yes) + AC_DEFINE([HAVE_EVENTFD], 1, [Define to 1 if your system supports eventfd and the EFD_NONBLOCK and EFD_SEMAPHORE flags.]), +- AC_MSG_RESULT(no) ++ AC_MSG_RESULT(no), ++ AC_MSG_RESULT(cross-compile) + ) + + AST_GCC_ATTRIBUTE(pure) Modified: branches/1.0/package/asterisk/asterisk-13-configure-menuselect-cross-fix.patch =================================================================== --- branches/1.0/package/asterisk/asterisk-13-configure-menuselect-cross-fix.patch 2017-06-07 16:12:33 UTC (rev 8380) +++ branches/1.0/package/asterisk/asterisk-13-configure-menuselect-cross-fix.patch 2017-06-07 17:59:55 UTC (rev 8381) @@ -1,6 +1,6 @@ --- asterisk-13/configure.ac.orig 2014-01-24 16:52:23.000000000 -0600 +++ asterisk-13/configure.ac 2014-01-24 16:55:14.000000000 -0600 -@@ -2670,11 +2670,13 @@ +@@ -2659,11 +2659,13 @@ AC_OUTPUT ${ac_cv_path_EGREP} 'CURSES|GTK2|OSARCH|NEWT' makeopts > makeopts.acbak2 Modified: branches/1.0/package/asterisk/asterisk-13-extension-changed-verbosity-chan_sip.patch =================================================================== --- branches/1.0/package/asterisk/asterisk-13-extension-changed-verbosity-chan_sip.patch 2017-06-07 16:12:33 UTC (rev 8380) +++ branches/1.0/package/asterisk/asterisk-13-extension-changed-verbosity-chan_sip.patch 2017-06-07 17:59:55 UTC (rev 8381) @@ -1,6 +1,6 @@ --- asterisk-13/channels/chan_sip.c.orig 2015-04-23 10:22:04.000000000 -0500 +++ asterisk-13/channels/chan_sip.c 2015-04-23 10:22:40.000000000 -0500 -@@ -17449,7 +17449,7 @@ +@@ -17477,7 +17477,7 @@ } if (!force) { Modified: branches/1.0/package/asterisk/asterisk.mk =================================================================== --- branches/1.0/package/asterisk/asterisk.mk 2017-06-07 16:12:33 UTC (rev 8380) +++ branches/1.0/package/asterisk/asterisk.mk 2017-06-07 17:59:55 UTC (rev 8381) @@ -7,7 +7,7 @@ ASTERISK_VERSION := 11.25.1 else ifeq ($(BR2_PACKAGE_ASTERISK_v13),y) -ASTERISK_VERSION := 13.15.1 +ASTERISK_VERSION := 13.16.0 else ASTERISK_VERSION := 15.0.0 endif Added: branches/1.0/package/pjsip/pjsip-0035-r5572-svn-backport-dialog-transaction-deadlock.patch =================================================================== --- branches/1.0/package/pjsip/pjsip-0035-r5572-svn-backport-dialog-transaction-deadlock.patch (rev 0) +++ branches/1.0/package/pjsip/pjsip-0035-r5572-svn-backport-dialog-transaction-deadlock.patch 2017-06-07 17:59:55 UTC (rev 8381) @@ -0,0 +1,32 @@ +Index: trunk/pjsip/src/pjsip/sip_transaction.c +=================================================================== +--- a/pjsip/src/pjsip/sip_transaction.c (revision 5244) ++++ b/pjsip/src/pjsip/sip_transaction.c (revision 5572) +@@ -1231,5 +1231,27 @@ + PJSIP_EVENT_INIT_TSX_STATE(e, tsx, event_src_type, event_src, + prev_state); ++ ++ /* For timer event, release lock to avoid deadlock. ++ * This should be safe because: ++ * 1. The tsx state just switches to TERMINATED or DESTROYED. ++ * 2. There should be no other processing taking place. All other ++ * events, such as the ones handled by tsx_on_state_terminated() ++ * should be ignored. ++ * 3. tsx_shutdown() hasn't been called. ++ * Refer to ticket #2001 (https://trac.pjsip.org/repos/ticket/2001). ++ */ ++ if (event_src_type == PJSIP_EVENT_TIMER && ++ (pj_timer_entry *)event_src == &tsx->timeout_timer) ++ { ++ pj_grp_lock_release(tsx->grp_lock); ++ } ++ + (*tsx->tsx_user->on_tsx_state)(tsx, &e); ++ ++ if (event_src_type == PJSIP_EVENT_TIMER && ++ (pj_timer_entry *)event_src == &tsx->timeout_timer) ++ { ++ pj_grp_lock_acquire(tsx->grp_lock); ++ } + } + Added: branches/1.0/package/pjsip/pjsip-0036-r5573-svn-backport-ua-pjsua-transaction-deadlock.patch =================================================================== --- branches/1.0/package/pjsip/pjsip-0036-r5573-svn-backport-ua-pjsua-transaction-deadlock.patch (rev 0) +++ branches/1.0/package/pjsip/pjsip-0036-r5573-svn-backport-ua-pjsua-transaction-deadlock.patch 2017-06-07 17:59:55 UTC (rev 8381) @@ -0,0 +1,119 @@ +Index: trunk/pjsip/include/pjsip/sip_transaction.h +=================================================================== +--- a/pjsip/include/pjsip/sip_transaction.h (revision 5572) ++++ b/pjsip/include/pjsip/sip_transaction.h (revision 5573) +@@ -180,4 +180,8 @@ + * is created by calling #pjsip_tsx_create_key() from an incoming message. + * ++ * IMPORTANT: To prevent deadlock, application should use ++ * #pjsip_tsx_layer_find_tsx2() instead which only adds a reference to ++ * the transaction instead of locking it. ++ * + * @param key The key string to find the transaction. + * @param lock If non-zero, transaction will be locked before the +@@ -190,4 +194,19 @@ + PJ_DECL(pjsip_transaction*) pjsip_tsx_layer_find_tsx( const pj_str_t *key, + pj_bool_t lock ); ++ ++/** ++ * Find a transaction with the specified key. The transaction key normally ++ * is created by calling #pjsip_tsx_create_key() from an incoming message. ++ * ++ * @param key The key string to find the transaction. ++ * @param add_ref If non-zero, transaction's reference will be added ++ * by one before the function returns, to make sure that ++ * it's not deleted by other threads. ++ * ++ * @return The matching transaction instance, or NULL if transaction ++ * can not be found. ++ */ ++PJ_DECL(pjsip_transaction*) pjsip_tsx_layer_find_tsx2( const pj_str_t *key, ++ pj_bool_t add_ref ); + + /** +Index: trunk/pjsip/src/pjsip/sip_transaction.c +=================================================================== +--- a/pjsip/src/pjsip/sip_transaction.c (revision 5572) ++++ b/pjsip/src/pjsip/sip_transaction.c (revision 5573) +@@ -642,6 +642,6 @@ + * Find a transaction. + */ +-PJ_DEF(pjsip_transaction*) pjsip_tsx_layer_find_tsx( const pj_str_t *key, +- pj_bool_t lock ) ++static pjsip_transaction* find_tsx( const pj_str_t *key, pj_bool_t lock, ++ pj_bool_t add_ref ) + { + pjsip_transaction *tsx; +@@ -655,5 +655,5 @@ + /* Prevent the transaction to get deleted before we have chance to lock it. + */ +- if (tsx && lock) ++ if (tsx) + pj_grp_lock_add_ref(tsx->grp_lock); + +@@ -667,10 +667,27 @@ + PJ_RACE_ME(5); + +- if (tsx && lock) { +- pj_grp_lock_acquire(tsx->grp_lock); +- pj_grp_lock_dec_ref(tsx->grp_lock); ++ if (tsx) { ++ if (lock) ++ pj_grp_lock_acquire(tsx->grp_lock); ++ ++ if (!add_ref) ++ pj_grp_lock_dec_ref(tsx->grp_lock); + } + + return tsx; ++} ++ ++ ++PJ_DEF(pjsip_transaction*) pjsip_tsx_layer_find_tsx( const pj_str_t *key, ++ pj_bool_t lock ) ++{ ++ return find_tsx(key, lock, PJ_FALSE); ++} ++ ++ ++PJ_DEF(pjsip_transaction*) pjsip_tsx_layer_find_tsx2( const pj_str_t *key, ++ pj_bool_t add_ref ) ++{ ++ return find_tsx(key, PJ_FALSE, add_ref); + } + +Index: trunk/pjsip/src/pjsip/sip_ua_layer.c +=================================================================== +--- a/pjsip/src/pjsip/sip_ua_layer.c (revision 5572) ++++ b/pjsip/src/pjsip/sip_ua_layer.c (revision 5573) +@@ -552,10 +552,10 @@ + + /* Lookup the INVITE transaction */ +- tsx = pjsip_tsx_layer_find_tsx(&key, PJ_TRUE); ++ tsx = pjsip_tsx_layer_find_tsx2(&key, PJ_TRUE); + + /* We should find the dialog attached to the INVITE transaction */ + if (tsx) { + dlg = (pjsip_dialog*) tsx->mod_data[mod_ua.mod.id]; +- pj_grp_lock_release(tsx->grp_lock); ++ pj_grp_lock_dec_ref(tsx->grp_lock); + + /* Dlg may be NULL on some extreme condition +Index: trunk/pjsip/src/pjsip-ua/sip_inv.c +=================================================================== +--- a/pjsip/src/pjsip-ua/sip_inv.c (revision 5572) ++++ b/pjsip/src/pjsip-ua/sip_inv.c (revision 5573) +@@ -3276,5 +3276,5 @@ + pjsip_tsx_create_key(rdata->tp_info.pool, &key, PJSIP_ROLE_UAS, + pjsip_get_invite_method(), rdata); +- invite_tsx = pjsip_tsx_layer_find_tsx(&key, PJ_TRUE); ++ invite_tsx = pjsip_tsx_layer_find_tsx2(&key, PJ_TRUE); + + if (invite_tsx == NULL) { +@@ -3325,5 +3325,5 @@ + + if (invite_tsx) +- pj_grp_lock_release(invite_tsx->grp_lock); ++ pj_grp_lock_dec_ref(invite_tsx->grp_lock); + } + Added: branches/1.0/package/pjsip/pjsip-0037-r5576-svn-backport-session-timer-crash.patch =================================================================== --- branches/1.0/package/pjsip/pjsip-0037-r5576-svn-backport-session-timer-crash.patch (rev 0) +++ branches/1.0/package/pjsip/pjsip-0037-r5576-svn-backport-session-timer-crash.patch 2017-06-07 17:59:55 UTC (rev 8381) @@ -0,0 +1,72 @@ +Index: pjproject/trunk/pjsip/src/pjsip-ua/sip_timer.c +=================================================================== +--- a/pjsip/src/pjsip-ua/sip_timer.c (revision 5557) ++++ b/pjsip/src/pjsip-ua/sip_timer.c (revision 5576) +@@ -333,6 +333,8 @@ + pjsip_tx_data *tdata = NULL; + pj_status_t status; + pj_bool_t as_refresher; ++ int entry_id; ++ char obj_name[PJ_MAX_OBJ_NAME]; + + pj_assert(inv); + +@@ -344,7 +346,10 @@ + /* Check our role */ + as_refresher = + (inv->timer->refresher == TR_UAC && inv->timer->role == PJSIP_ROLE_UAC) || +- (inv->timer->refresher == TR_UAS && inv->timer->role == PJSIP_ROLE_UAS); ++ (inv->timer->refresher == TR_UAS && inv->timer->role == PJSIP_ROLE_UAS); ++ ++ entry_id = entry->id; ++ pj_ansi_strncpy(obj_name, inv->pool->obj_name, PJ_MAX_OBJ_NAME); + + /* Do action based on role(refresher or refreshee). + * As refresher: +@@ -353,7 +358,7 @@ + * As refreshee: + * - end session if there is no refresh request received. + */ +- if (as_refresher && (entry->id != REFRESHER_EXPIRE_TIMER_ID)) { ++ if (as_refresher && (entry_id != REFRESHER_EXPIRE_TIMER_ID)) { + pj_time_val now; + + /* As refresher, reshedule the refresh request on the following: +@@ -414,7 +419,7 @@ + } + + pj_gettimeofday(&now); +- PJ_LOG(4, (inv->pool->obj_name, ++ PJ_LOG(4, (obj_name, + "Refreshing session after %ds (expiration period=%ds)", + (now.sec-inv->timer->last_refresh.sec), + inv->timer->setting.sess_expires)); +@@ -432,7 +437,7 @@ + NULL, &tdata); + + pj_gettimeofday(&now); +- PJ_LOG(3, (inv->pool->obj_name, ++ PJ_LOG(3, (obj_name, + "No session %s received after %ds " + "(expiration period=%ds), stopping session now!", + (as_refresher?"refresh response":"refresh"), +@@ -451,11 +456,16 @@ + status = pjsip_inv_send_msg(inv, tdata); + } + ++ /* ++ * At this point, dialog might have already been destroyed, ++ * including its pool used by the invite session. ++ */ ++ + /* Print error message, if any */ + if (status != PJ_SUCCESS) { +- PJ_PERROR(2, (inv->pool->obj_name, status, ++ PJ_PERROR(2, (obj_name, status, + "Error in %s session timer", +- ((as_refresher && entry->id != REFRESHER_EXPIRE_TIMER_ID)? ++ ((as_refresher && entry_id != REFRESHER_EXPIRE_TIMER_ID)? + "refreshing" : "terminating"))); + } + } + Added: branches/1.0/package/pjsip/pjsip-0048-r5576-svn-backport-tls-crash.patch =================================================================== --- branches/1.0/package/pjsip/pjsip-0048-r5576-svn-backport-tls-crash.patch (rev 0) +++ branches/1.0/package/pjsip/pjsip-0048-r5576-svn-backport-tls-crash.patch 2017-06-07 17:59:55 UTC (rev 8381) @@ -0,0 +1,32 @@ +Index: /pjproject/trunk/pjlib/src/pj/ssl_sock_ossl.c +=================================================================== +--- a/pjlib/src/pj/ssl_sock_ossl.c (revision 5564) ++++ b/pjlib/src/pj/ssl_sock_ossl.c (revision 5565) +@@ -145,5 +145,6 @@ + SSL_STATE_NULL, + SSL_STATE_HANDSHAKING, +- SSL_STATE_ESTABLISHED ++ SSL_STATE_ESTABLISHED, ++ SSL_STATE_ERROR + }; + +@@ -1907,4 +1908,8 @@ + buf->len += size_; + ++ if (status != PJ_SUCCESS) { ++ ssock->ssl_state = SSL_STATE_ERROR; ++ } ++ + ret = (*ssock->param.cb.on_data_read)(ssock, buf->data, + buf->len, status, +@@ -2658,5 +2663,9 @@ + /* Current cipher */ + cipher = SSL_get_current_cipher(ssock->ossl_ssl); +- info->cipher = (SSL_CIPHER_get_id(cipher) & 0x00FFFFFF); ++ if (cipher) { ++ info->cipher = (SSL_CIPHER_get_id(cipher) & 0x00FFFFFF); ++ } else { ++ info->cipher = PJ_TLS_UNKNOWN_CIPHER; ++ } + + /* Remote address */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <abe...@us...> - 2017-06-10 00:08:16
|
Revision: 8391 http://sourceforge.net/p/astlinux/code/8391 Author: abelbeck Date: 2017-06-10 00:08:14 +0000 (Sat, 10 Jun 2017) Log Message: ----------- openvmtools, new package, initial checkin not hooked-up yet and missing an init.d script, adds 1.7 MB (compressed) to the image with all the dependencies. Seems to work. Modified Paths: -------------- branches/1.0/package/libdnet/libdnet.mk Added Paths: ----------- branches/1.0/package/openvmtools/ branches/1.0/package/openvmtools/Config.in branches/1.0/package/openvmtools/openvmtools-0002-no_cflags_werror.patch branches/1.0/package/openvmtools/openvmtools-0003-dont-force-cppflags.patch branches/1.0/package/openvmtools/openvmtools-0100-astlinux-distro-host-info.patch branches/1.0/package/openvmtools/openvmtools.mk Modified: branches/1.0/package/libdnet/libdnet.mk =================================================================== --- branches/1.0/package/libdnet/libdnet.mk 2017-06-09 14:16:52 UTC (rev 8390) +++ branches/1.0/package/libdnet/libdnet.mk 2017-06-10 00:08:14 UTC (rev 8391) @@ -6,9 +6,8 @@ LIBDNET_VERSION = 1.11 LIBDNET_SOURCE = libdnet-$(LIBDNET_VERSION).tar.gz -LIBDNET_SITE = http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/sourceforge/libdnet/ +LIBDNET_SITE = http://downloads.sourceforge.net/project/libdnet/libdnet/libdnet-$(LIBDNET_VERSION) LIBDNET_INSTALL_STAGING = YES -LIBDNET_INSTALL_TARGET = YES LIBDNET_AUTORECONF = YES LIBDNET_CONF_OPT = \ --with-gnu-ld \ @@ -33,8 +32,6 @@ $(RM) -f $(TARGET_DIR)/usr/bin/dnet-config endef -ifneq ($(BR2_HAVE_DEVFILES),y) LIBDNET_POST_INSTALL_TARGET_HOOKS += LIBDNET_REMOVE_CONFIG_SCRIPT -endif $(eval $(call AUTOTARGETS,package,libdnet)) Added: branches/1.0/package/openvmtools/Config.in =================================================================== --- branches/1.0/package/openvmtools/Config.in (rev 0) +++ branches/1.0/package/openvmtools/Config.in 2017-06-10 00:08:14 UTC (rev 8391) @@ -0,0 +1,16 @@ +config BR2_PACKAGE_OPENVMTOOLS + bool "openvmtools" + depends on BR2_i386 || BR2_x86_64 + depends on BR2_USE_MMU # libglib2 + depends on BR2_USE_WCHAR # libglib2 + depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2 + depends on BR2_ENABLE_LOCALE + select BR2_PACKAGE_LIBGLIB2 + select BR2_PACKAGE_LIBDNET + help + Open Virtual Machine Tools for VMware guest OS + + https://github.com/vmware/open-vm-tools + + ICU locales, Xerces, and X11 tools are currently not supported. + Added: branches/1.0/package/openvmtools/openvmtools-0002-no_cflags_werror.patch =================================================================== --- branches/1.0/package/openvmtools/openvmtools-0002-no_cflags_werror.patch (rev 0) +++ branches/1.0/package/openvmtools/openvmtools-0002-no_cflags_werror.patch 2017-06-10 00:08:14 UTC (rev 8391) @@ -0,0 +1,18 @@ +configure.ac: disable -Werror + +Disable the mandatory flag -Werror in configure.ac. + +Signed-off-by: Karoly Kasza <ka...@gm...> + +--- openvmtools-10.1.5/configure.ac.orig 2015-06-17 10:02:00.000000000 +0200 ++++ openvmtools-10.1.5/configure.ac 2015-06-17 10:02:00.000000000 +0200 +@@ -1137,7 +1137,7 @@ + + ### General flags / actions + CFLAGS="$CFLAGS -Wall" +-CFLAGS="$CFLAGS -Werror" ++# CFLAGS="$CFLAGS -Werror" + + # -Wno-unknown-pragmas is due to gcc not understanding '#pragma ident' + # in Xlib.h on OpenSolaris. + Added: branches/1.0/package/openvmtools/openvmtools-0003-dont-force-cppflags.patch =================================================================== --- branches/1.0/package/openvmtools/openvmtools-0003-dont-force-cppflags.patch (rev 0) +++ branches/1.0/package/openvmtools/openvmtools-0003-dont-force-cppflags.patch 2017-06-10 00:08:14 UTC (rev 8391) @@ -0,0 +1,21 @@ +m4: do not force -I/usr/include in CPPFLAGS + +This is so horribly broken for cross-compilation. :-( + +Signed-off-by: "Yann E. MORIN" <yan...@fr...> + +--- openvmtools-10.1.5/m4/vmtools.m4.orig 2015-06-17 10:03:00.000000000 +0200 ++++ openvmtools-10.1.5/m4/vmtools.m4 2015-06-17 10:03:00.000000000 +0200 +@@ -281,10 +281,10 @@ + if test "$os" = freebsd; then + CUSTOM_$1_CPPFLAGS="-I/usr/local/include" + else +- CUSTOM_$1_CPPFLAGS="-I/usr/include" ++ CUSTOM_$1_CPPFLAGS=" " + fi + if test -n "$2"; then +- CUSTOM_$1_CPPFLAGS="${CUSTOM_$1_CPPFLAGS}/$2" ++ : CUSTOM_$1_CPPFLAGS="${CUSTOM_$1_CPPFLAGS}/$2" + fi + fi + ]) Added: branches/1.0/package/openvmtools/openvmtools-0100-astlinux-distro-host-info.patch =================================================================== --- branches/1.0/package/openvmtools/openvmtools-0100-astlinux-distro-host-info.patch (rev 0) +++ branches/1.0/package/openvmtools/openvmtools-0100-astlinux-distro-host-info.patch 2017-06-10 00:08:14 UTC (rev 8391) @@ -0,0 +1,10 @@ +--- openvmtools-10.1.5/lib/misc/hostinfoPosix.c.orig 2017-06-09 16:38:40.073221476 -0500 ++++ openvmtools-10.1.5/lib/misc/hostinfoPosix.c 2017-06-09 16:39:54.770805579 -0500 +@@ -179,6 +179,7 @@ + {"Annvix", "/etc/annvix-release"}, + {"Arch", "/etc/arch-release"}, + {"Arklinux", "/etc/arklinux-release"}, ++ {"AstLinux", "/etc/astlinux-release"}, + {"Aurox", "/etc/aurox-release"}, + {"BlackCat", "/etc/blackcat-release"}, + {"Cobalt", "/etc/cobalt-release"}, Added: branches/1.0/package/openvmtools/openvmtools.mk =================================================================== --- branches/1.0/package/openvmtools/openvmtools.mk (rev 0) +++ branches/1.0/package/openvmtools/openvmtools.mk 2017-06-10 00:08:14 UTC (rev 8391) @@ -0,0 +1,49 @@ +################################################################################ +# +# openvmtools +# +################################################################################ + +OPENVMTOOLS_VERSION = 10.1.5 +OPENVMTOOLS_SOURCE = open-vm-tools-$(OPENVMTOOLS_VERSION)-5055683.tar.gz +OPENVMTOOLS_SITE = https://github.com/vmware/open-vm-tools/releases/download/stable-$(OPENVMTOOLS_VERSION) + +OPENVMTOOLS_AUTORECONF = YES + +OPENVMTOOLS_CONF_OPT = \ + --disable-static \ + --with-pic \ + --with-dnet \ + --without-icu \ + --without-x \ + --without-gtk2 \ + --without-gtkmm \ + --without-kernel-modules \ + --without-xerces \ + --without-procps \ + --without-pam \ + --disable-tests \ + --disable-docs \ + --disable-vgauth \ + --disable-multimon \ + --disable-grabbitmqproxy \ + --disable-deploypkg + +OPENVMTOOLS_CONF_ENV += CUSTOM_DNET_CPPFLAGS=" " +OPENVMTOOLS_DEPENDENCIES = libglib2 libdnet + +ifeq ($(BR2_PACKAGE_OPENSSL),y) +OPENVMTOOLS_CONF_OPT += --with-ssl +OPENVMTOOLS_DEPENDENCIES += openssl +else +OPENVMTOOLS_CONF_OPT += --without-ssl +endif + +define OPENVMTOOLS_POST_INSTALL_TARGET_THINGIES + rm -f $(TARGET_DIR)/etc/vmware-tools/scripts/vmware/network + rm -f $(TARGET_DIR)/lib/udev/rules.d/99-vmware-scsi-udev.rules +endef + +OPENVMTOOLS_POST_INSTALL_TARGET_HOOKS += OPENVMTOOLS_POST_INSTALL_TARGET_THINGIES + +$(eval $(call AUTOTARGETS,package,openvmtools)) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <abe...@us...> - 2017-06-27 17:35:29
|
Revision: 8416 http://sourceforge.net/p/astlinux/code/8416 Author: abelbeck Date: 2017-06-27 17:35:27 +0000 (Tue, 27 Jun 2017) Log Message: ----------- mtr, version bump to 0.92, now requires a mtr-packet helper and uses libcap, fix displayed version number Modified Paths: -------------- branches/1.0/package/bash/rbash/cmd_symlinks.txt branches/1.0/package/mtr/Config.in branches/1.0/package/mtr/mtr.mk Modified: branches/1.0/package/bash/rbash/cmd_symlinks.txt =================================================================== --- branches/1.0/package/bash/rbash/cmd_symlinks.txt 2017-06-27 13:44:43 UTC (rev 8415) +++ branches/1.0/package/bash/rbash/cmd_symlinks.txt 2017-06-27 17:35:27 UTC (rev 8416) @@ -28,3 +28,4 @@ usr/sbin/fping6 usr/sbin/iftop usr/sbin/mtr +usr/sbin/mtr-packet Modified: branches/1.0/package/mtr/Config.in =================================================================== --- branches/1.0/package/mtr/Config.in 2017-06-27 13:44:43 UTC (rev 8415) +++ branches/1.0/package/mtr/Config.in 2017-06-27 17:35:27 UTC (rev 8416) @@ -2,6 +2,7 @@ bool "mtr" default n select BR2_PACKAGE_NCURSES + select BR2_PACKAGE_LIBCAP help My TraceRoute mtr combines the functionality of the 'traceroute' and 'ping' Modified: branches/1.0/package/mtr/mtr.mk =================================================================== --- branches/1.0/package/mtr/mtr.mk 2017-06-27 13:44:43 UTC (rev 8415) +++ branches/1.0/package/mtr/mtr.mk 2017-06-27 17:35:27 UTC (rev 8416) @@ -3,21 +3,25 @@ # mtr # ############################################################# -MTR_VERSION = 0.87 +MTR_VERSION = 0.92 MTR_SITE = ftp://ftp.bitwizard.nl/mtr MTR_SOURCE = mtr-$(MTR_VERSION).tar.gz -MTR_DEPENDENCIES = host-pkg-config ncurses +MTR_DEPENDENCIES = host-pkg-config ncurses libcap MTR_CONF_OPT = \ + PACKAGE_VERSION="$(MTR_VERSION)" \ + PACKAGE_STRING="mtr $(MTR_VERSION)" \ --without-gtk define MTR_INSTALL_TARGET_CMDS - $(INSTALL) -D -m 4711 $(@D)/mtr $(TARGET_DIR)/usr/sbin/ + $(INSTALL) -D -m 0755 $(@D)/mtr $(TARGET_DIR)/usr/sbin/ + $(INSTALL) -D -m 4711 $(@D)/mtr-packet $(TARGET_DIR)/usr/sbin/ endef define MTR_UNINSTALL_TARGET_CMDS rm -f $(TARGET_DIR)/usr/sbin/mtr + rm -f $(TARGET_DIR)/usr/sbin/mtr-packet endef $(eval $(call AUTOTARGETS,package,mtr)) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <abe...@us...> - 2017-07-10 21:01:10
|
Revision: 8432 http://sourceforge.net/p/astlinux/code/8432 Author: abelbeck Date: 2017-07-10 21:01:07 +0000 (Mon, 10 Jul 2017) Log Message: ----------- ddclient, update 'pairNIC' to 'pairDomains', keep using 'de...@pa...' to be backward compatible Ref: https://www.pairdomains.com/kb/posts/336 Modified Paths: -------------- branches/1.0/package/ddclient/ddclient.conf branches/1.0/package/ddclient/dynamicdns.init branches/1.0/package/webinterface/altweb/admin/network.php Modified: branches/1.0/package/ddclient/ddclient.conf =================================================================== --- branches/1.0/package/ddclient/ddclient.conf 2017-07-07 18:14:21 UTC (rev 8431) +++ branches/1.0/package/ddclient/ddclient.conf 2017-07-10 21:01:07 UTC (rev 8432) @@ -59,14 +59,14 @@ #@dnsomatic@>login=@DDUSER@ #@dnsomatic@>password=@DDPASS@ #@dnsomatic@>@DDHOST@ -#@pairnic@> -#@pairnic@>## pairNIC -#@pairnic@>ssl=yes -#@pairnic@>server=dynamic.pairnic.com -#@pairnic@>protocol=dyndns2 -#@pairnic@>login=@DDUSER@ -#@pairnic@>password=@DDPASS@ -#@pairnic@>@DDHOST@ +#@pairdomains@> +#@pairdomains@>## pairDomains +#@pairdomains@>ssl=yes +#@pairdomains@>server=dynamic.pairdomains.com +#@pairdomains@>protocol=dyndns2 +#@pairdomains@>login=pairdomains +#@pairdomains@>password=@DDPASS@ +#@pairdomains@>@DDHOST@ #@nsupdate-ipv4@> #@nsupdate-ipv4@>## nsupdate.info #@nsupdate-ipv4@>ssl=yes Modified: branches/1.0/package/ddclient/dynamicdns.init =================================================================== --- branches/1.0/package/ddclient/dynamicdns.init 2017-07-07 18:14:21 UTC (rev 8431) +++ branches/1.0/package/ddclient/dynamicdns.init 2017-07-10 21:01:07 UTC (rev 8432) @@ -59,7 +59,7 @@ 'de...@no...') service="no-ip" ;; 'de...@fr...') service="freedns" ;; 'de...@dn...') service="dnsomatic" ;; - 'de...@pa...') service="pairnic" ;; + 'de...@pa...') service="pairdomains" ;; 'de...@ns...') service="nsupdate-ipv4" ;; *) service="$(echo "$DDSERVICE" | tr -d '^$*[]|"')" ;; # sanitize for sed regex esac Modified: branches/1.0/package/webinterface/altweb/admin/network.php =================================================================== --- branches/1.0/package/webinterface/altweb/admin/network.php 2017-07-07 18:14:21 UTC (rev 8431) +++ branches/1.0/package/webinterface/altweb/admin/network.php 2017-07-10 21:01:07 UTC (rev 8432) @@ -103,7 +103,7 @@ 'NameCheap' => 'namecheap', 'No-IP' => 'de...@no...', 'nsupdate.info' => 'de...@ns...', - 'pairNIC' => 'de...@pa...', + 'pairDomains' => 'de...@pa...', 'ZoneEdit' => 'de...@zo...' ); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <abe...@us...> - 2017-07-15 16:47:46
|
Revision: 8443 http://sourceforge.net/p/astlinux/code/8443 Author: abelbeck Date: 2017-07-15 16:47:43 +0000 (Sat, 15 Jul 2017) Log Message: ----------- asterisk, version bump to 13.17.0 Modified Paths: -------------- branches/1.0/package/asterisk/asterisk-13-configure-menuselect-cross-fix.patch branches/1.0/package/asterisk/asterisk.mk Added Paths: ----------- branches/1.0/package/pjsip/pjsip-0070-Set-PJSIP_INV_SUPPORT_UPDATE-correctly-in-pjsip_inv_.patch Removed Paths: ------------- branches/1.0/package/asterisk/asterisk-13-configure-have-usable-eventfd.patch branches/1.0/package/asterisk/asterisk-13-upstream-missing-ari-conf-crash.patch Deleted: branches/1.0/package/asterisk/asterisk-13-configure-have-usable-eventfd.patch =================================================================== --- branches/1.0/package/asterisk/asterisk-13-configure-have-usable-eventfd.patch 2017-07-15 16:05:11 UTC (rev 8442) +++ branches/1.0/package/asterisk/asterisk-13-configure-have-usable-eventfd.patch 2017-07-15 16:47:43 UTC (rev 8443) @@ -1,12 +0,0 @@ ---- asterisk-13.16.0/configure.ac.orig 2017-06-07 11:56:41.261126679 -0500 -+++ asterisk-13.16.0/configure.ac 2017-06-07 12:01:48.732815227 -0500 -@@ -1104,7 +1104,8 @@ - [return eventfd(0, EFD_NONBLOCK | EFD_SEMAPHORE) == -1;])], - AC_MSG_RESULT(yes) - AC_DEFINE([HAVE_EVENTFD], 1, [Define to 1 if your system supports eventfd and the EFD_NONBLOCK and EFD_SEMAPHORE flags.]), -- AC_MSG_RESULT(no) -+ AC_MSG_RESULT(no), -+ AC_MSG_RESULT(cross-compile) - ) - - AST_GCC_ATTRIBUTE(pure) Modified: branches/1.0/package/asterisk/asterisk-13-configure-menuselect-cross-fix.patch =================================================================== --- branches/1.0/package/asterisk/asterisk-13-configure-menuselect-cross-fix.patch 2017-07-15 16:05:11 UTC (rev 8442) +++ branches/1.0/package/asterisk/asterisk-13-configure-menuselect-cross-fix.patch 2017-07-15 16:47:43 UTC (rev 8443) @@ -1,6 +1,6 @@ --- asterisk-13/configure.ac.orig 2014-01-24 16:52:23.000000000 -0600 +++ asterisk-13/configure.ac 2014-01-24 16:55:14.000000000 -0600 -@@ -2659,11 +2659,13 @@ +@@ -2684,11 +2684,13 @@ AC_OUTPUT ${ac_cv_path_EGREP} 'CURSES|GTK2|OSARCH|NEWT' makeopts > makeopts.acbak2 Deleted: branches/1.0/package/asterisk/asterisk-13-upstream-missing-ari-conf-crash.patch =================================================================== --- branches/1.0/package/asterisk/asterisk-13-upstream-missing-ari-conf-crash.patch 2017-07-15 16:05:11 UTC (rev 8442) +++ branches/1.0/package/asterisk/asterisk-13-upstream-missing-ari-conf-crash.patch 2017-07-15 16:47:43 UTC (rev 8443) @@ -1,295 +0,0 @@ -From: George Joseph <gj...@di...> -Date: Tue, 13 Jun 2017 16:33:34 +0000 (-0600) -Subject: res_ari: Add "module loaded" check to ari stubs -X-Git-Url: http://git.asterisk.org/gitweb/?p=asterisk%2Fasterisk.git;a=commitdiff_plain;h=7901b9853e8f60e1d2dce44ce81dec6f7f866ccc - -res_ari: Add "module loaded" check to ari stubs - -The recent change to make the use of LOAD_DECLINE more consistent -caused res_ari to unload itself before declining if the ari.conf -file wasn't found. The ari stubs though still tried to use the -configuration resulting in segfaults. - -This patch creates a new CHECK_ARI_MODULE_LOADED macro which tests -to see if res_ari is actually loaded and causes the stubs to also -decline if it isn't. The macro was then added to the mustache -template's "load_module" function. - -ASTERISK-27026 #close -Reported-by: Ronald Raikes - -Change-Id: I263d56efa628ee3c411bdcd16d49af6260c6c91d ---- - -diff --git a/include/asterisk/ari.h b/include/asterisk/ari.h -index cad9b32..f83df04 100644 ---- a/include/asterisk/ari.h -+++ b/include/asterisk/ari.h -@@ -266,4 +266,14 @@ void ast_ari_response_created(struct ast_ari_response *response, - */ - void ast_ari_response_alloc_failed(struct ast_ari_response *response); - -+/*! \brief Determines whether the res_ari module is loaded */ -+#define CHECK_ARI_MODULE_LOADED() \ -+ do { \ -+ if (!ast_module_check("res_ari.so") \ -+ || !ast_ari_oom_json()) { \ -+ return AST_MODULE_LOAD_DECLINE; \ -+ } \ -+ } while(0) -+ -+ - #endif /* _ASTERISK_ARI_H */ -diff --git a/res/res_ari_applications.c b/res/res_ari_applications.c -index cb12e84..290719d 100644 ---- a/res/res_ari_applications.c -+++ b/res/res_ari_applications.c -@@ -502,6 +502,10 @@ static int unload_module(void) - static int load_module(void) - { - int res = 0; -+ -+ CHECK_ARI_MODULE_LOADED(); -+ -+ - stasis_app_ref(); - res |= ast_ari_add_handler(&applications); - if (res) { -diff --git a/res/res_ari_asterisk.c b/res/res_ari_asterisk.c -index 1a574aa..73e4d0c 100644 ---- a/res/res_ari_asterisk.c -+++ b/res/res_ari_asterisk.c -@@ -1223,6 +1223,10 @@ static int unload_module(void) - static int load_module(void) - { - int res = 0; -+ -+ CHECK_ARI_MODULE_LOADED(); -+ -+ - stasis_app_ref(); - res |= ast_ari_add_handler(&asterisk); - if (res) { -diff --git a/res/res_ari_bridges.c b/res/res_ari_bridges.c -index 69d4d6e..b923330 100644 ---- a/res/res_ari_bridges.c -+++ b/res/res_ari_bridges.c -@@ -1415,6 +1415,10 @@ static int unload_module(void) - static int load_module(void) - { - int res = 0; -+ -+ CHECK_ARI_MODULE_LOADED(); -+ -+ - stasis_app_ref(); - res |= ast_ari_add_handler(&bridges); - if (res) { -diff --git a/res/res_ari_channels.c b/res/res_ari_channels.c -index f59f206..6217679 100644 ---- a/res/res_ari_channels.c -+++ b/res/res_ari_channels.c -@@ -2479,6 +2479,10 @@ static int unload_module(void) - static int load_module(void) - { - int res = 0; -+ -+ CHECK_ARI_MODULE_LOADED(); -+ -+ - stasis_app_ref(); - res |= ast_ari_add_handler(&channels); - if (res) { -diff --git a/res/res_ari_device_states.c b/res/res_ari_device_states.c -index a3711e6..fe1817d 100644 ---- a/res/res_ari_device_states.c -+++ b/res/res_ari_device_states.c -@@ -333,6 +333,10 @@ static int unload_module(void) - static int load_module(void) - { - int res = 0; -+ -+ CHECK_ARI_MODULE_LOADED(); -+ -+ - stasis_app_ref(); - res |= ast_ari_add_handler(&deviceStates); - if (res) { -diff --git a/res/res_ari_endpoints.c b/res/res_ari_endpoints.c -index 43d2558..a46b0dc 100644 ---- a/res/res_ari_endpoints.c -+++ b/res/res_ari_endpoints.c -@@ -457,6 +457,10 @@ static int unload_module(void) - static int load_module(void) - { - int res = 0; -+ -+ CHECK_ARI_MODULE_LOADED(); -+ -+ - stasis_app_ref(); - res |= ast_ari_add_handler(&endpoints); - if (res) { -diff --git a/res/res_ari_events.c b/res/res_ari_events.c -index fd208c5..b6a44d9 100644 ---- a/res/res_ari_events.c -+++ b/res/res_ari_events.c -@@ -430,22 +430,29 @@ static int unload_module(void) - static int load_module(void) - { - int res = 0; -- struct ast_websocket_protocol *protocol; - -- events.ws_server = ast_websocket_server_create(); -- if (!events.ws_server) { -- return AST_MODULE_LOAD_DECLINE; -- } -+ CHECK_ARI_MODULE_LOADED(); - -- protocol = ast_websocket_sub_protocol_alloc("ari"); -- if (!protocol) { -- ao2_ref(events.ws_server, -1); -- events.ws_server = NULL; -- return AST_MODULE_LOAD_DECLINE; -+ /* This is scoped to not conflict with CHECK_ARI_MODULE_LOADED */ -+ { -+ struct ast_websocket_protocol *protocol; -+ -+ events.ws_server = ast_websocket_server_create(); -+ if (!events.ws_server) { -+ return AST_MODULE_LOAD_DECLINE; -+ } -+ -+ protocol = ast_websocket_sub_protocol_alloc("ari"); -+ if (!protocol) { -+ ao2_ref(events.ws_server, -1); -+ events.ws_server = NULL; -+ return AST_MODULE_LOAD_DECLINE; -+ } -+ protocol->session_attempted = ast_ari_events_event_websocket_ws_attempted_cb; -+ protocol->session_established = ast_ari_events_event_websocket_ws_established_cb; -+ res |= ast_websocket_server_add_protocol2(events.ws_server, protocol); - } -- protocol->session_attempted = ast_ari_events_event_websocket_ws_attempted_cb; -- protocol->session_established = ast_ari_events_event_websocket_ws_established_cb; -- res |= ast_websocket_server_add_protocol2(events.ws_server, protocol); -+ - stasis_app_ref(); - res |= ast_ari_add_handler(&events); - if (res) { -diff --git a/res/res_ari_mailboxes.c b/res/res_ari_mailboxes.c -index f85541c..600ecfd 100644 ---- a/res/res_ari_mailboxes.c -+++ b/res/res_ari_mailboxes.c -@@ -339,6 +339,10 @@ static int unload_module(void) - static int load_module(void) - { - int res = 0; -+ -+ CHECK_ARI_MODULE_LOADED(); -+ -+ - stasis_app_ref(); - res |= ast_ari_add_handler(&mailboxes); - if (res) { -diff --git a/res/res_ari_playbacks.c b/res/res_ari_playbacks.c -index 25e211c..106463b 100644 ---- a/res/res_ari_playbacks.c -+++ b/res/res_ari_playbacks.c -@@ -291,6 +291,10 @@ static int unload_module(void) - static int load_module(void) - { - int res = 0; -+ -+ CHECK_ARI_MODULE_LOADED(); -+ -+ - stasis_app_ref(); - res |= ast_ari_add_handler(&playbacks); - if (res) { -diff --git a/res/res_ari_recordings.c b/res/res_ari_recordings.c -index 29720a8..c43148d 100644 ---- a/res/res_ari_recordings.c -+++ b/res/res_ari_recordings.c -@@ -807,6 +807,10 @@ static int unload_module(void) - static int load_module(void) - { - int res = 0; -+ -+ CHECK_ARI_MODULE_LOADED(); -+ -+ - stasis_app_ref(); - res |= ast_ari_add_handler(&recordings); - if (res) { -diff --git a/res/res_ari_sounds.c b/res/res_ari_sounds.c -index 6d09d2c..e58ecd1 100644 ---- a/res/res_ari_sounds.c -+++ b/res/res_ari_sounds.c -@@ -221,6 +221,10 @@ static int unload_module(void) - static int load_module(void) - { - int res = 0; -+ -+ CHECK_ARI_MODULE_LOADED(); -+ -+ - stasis_app_ref(); - res |= ast_ari_add_handler(&sounds); - if (res) { -diff --git a/rest-api-templates/res_ari_resource.c.mustache b/rest-api-templates/res_ari_resource.c.mustache -index 921b007..b4d8010 100644 ---- a/rest-api-templates/res_ari_resource.c.mustache -+++ b/rest-api-templates/res_ari_resource.c.mustache -@@ -262,30 +262,37 @@ static int unload_module(void) - static int load_module(void) - { - int res = 0; -+ -+ CHECK_ARI_MODULE_LOADED(); -+ - {{#apis}} - {{#operations}} - {{#has_websocket}} -- struct ast_websocket_protocol *protocol; -+ /* This is scoped to not conflict with CHECK_ARI_MODULE_LOADED */ -+ { -+ struct ast_websocket_protocol *protocol; - -- {{full_name}}.ws_server = ast_websocket_server_create(); -- if (!{{full_name}}.ws_server) { -- return AST_MODULE_LOAD_DECLINE; -- } -+ {{full_name}}.ws_server = ast_websocket_server_create(); -+ if (!{{full_name}}.ws_server) { -+ return AST_MODULE_LOAD_DECLINE; -+ } - -- protocol = ast_websocket_sub_protocol_alloc("{{websocket_protocol}}"); -- if (!protocol) { -- ao2_ref({{full_name}}.ws_server, -1); -- {{full_name}}.ws_server = NULL; -- return AST_MODULE_LOAD_DECLINE; -- } -- protocol->session_attempted = ast_ari_{{c_name}}_{{c_nickname}}_ws_attempted_cb; -- protocol->session_established = ast_ari_{{c_name}}_{{c_nickname}}_ws_established_cb; -+ protocol = ast_websocket_sub_protocol_alloc("{{websocket_protocol}}"); -+ if (!protocol) { -+ ao2_ref({{full_name}}.ws_server, -1); -+ {{full_name}}.ws_server = NULL; -+ return AST_MODULE_LOAD_DECLINE; -+ } -+ protocol->session_attempted = ast_ari_{{c_name}}_{{c_nickname}}_ws_attempted_cb; -+ protocol->session_established = ast_ari_{{c_name}}_{{c_nickname}}_ws_established_cb; - {{/has_websocket}} - {{#is_websocket}} -- res |= ast_websocket_server_add_protocol2({{full_name}}.ws_server, protocol); -+ res |= ast_websocket_server_add_protocol2({{full_name}}.ws_server, protocol); -+ } - {{/is_websocket}} - {{/operations}} - {{/apis}} -+ - stasis_app_ref(); - res |= ast_ari_add_handler(&{{root_full_name}}); - if (res) { Modified: branches/1.0/package/asterisk/asterisk.mk =================================================================== --- branches/1.0/package/asterisk/asterisk.mk 2017-07-15 16:05:11 UTC (rev 8442) +++ branches/1.0/package/asterisk/asterisk.mk 2017-07-15 16:47:43 UTC (rev 8443) @@ -7,7 +7,7 @@ ASTERISK_VERSION := 11.25.1 else ifeq ($(BR2_PACKAGE_ASTERISK_v13),y) -ASTERISK_VERSION := 13.16.0 +ASTERISK_VERSION := 13.17.0 else ASTERISK_VERSION := 15.0.0 endif Added: branches/1.0/package/pjsip/pjsip-0070-Set-PJSIP_INV_SUPPORT_UPDATE-correctly-in-pjsip_inv_.patch =================================================================== --- branches/1.0/package/pjsip/pjsip-0070-Set-PJSIP_INV_SUPPORT_UPDATE-correctly-in-pjsip_inv_.patch (rev 0) +++ branches/1.0/package/pjsip/pjsip-0070-Set-PJSIP_INV_SUPPORT_UPDATE-correctly-in-pjsip_inv_.patch 2017-07-15 16:47:43 UTC (rev 8443) @@ -0,0 +1,29 @@ +From 1193681959816effa121c4470748d5faa3a59272 Mon Sep 17 00:00:00 2001 +From: George Joseph <gj...@di...> +Date: Thu, 29 Jun 2017 13:42:10 -0600 +Subject: [PATCH] Set PJSIP_INV_SUPPORT_UPDATE correctly in + pjsip_inv_verify_request3 + +pjsip_inv_verify_request3 was setting rem_options when UPDATE was +detected in the Allow header. That's just an internal variable and +doesn't go anywhere. It's '*options' that needs to be set. +--- + pjsip/src/pjsip-ua/sip_inv.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/pjsip/src/pjsip-ua/sip_inv.c b/pjsip/src/pjsip-ua/sip_inv.c +index fbc8ebe..6db7e6b 100644 +--- a/pjsip/src/pjsip-ua/sip_inv.c ++++ b/pjsip/src/pjsip-ua/sip_inv.c +@@ -1237,7 +1237,7 @@ PJ_DEF(pj_status_t) pjsip_inv_verify_request3(pjsip_rx_data *rdata, + + if (i != allow->count) { + /* UPDATE is present in Allow */ +- rem_option |= PJSIP_INV_SUPPORT_UPDATE; ++ *options |= PJSIP_INV_SUPPORT_UPDATE; + } + + } +-- +2.9.4 + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <abe...@us...> - 2017-07-17 18:07:27
|
Revision: 8453 http://sourceforge.net/p/astlinux/code/8453 Author: abelbeck Date: 2017-07-17 18:07:24 +0000 (Mon, 17 Jul 2017) Log Message: ----------- stunnel, make the ACME deploy script install a https_stunnel_server.pem cert including the fullchain, and restart stunnel if the server is active Modified Paths: -------------- branches/1.0/package/acme/deploy/astlinux.sh branches/1.0/package/stunnel/stunnel.init Modified: branches/1.0/package/acme/deploy/astlinux.sh =================================================================== --- branches/1.0/package/acme/deploy/astlinux.sh 2017-07-17 15:19:40 UTC (rev 8452) +++ branches/1.0/package/acme/deploy/astlinux.sh 2017-07-17 18:07:24 UTC (rev 8453) @@ -57,6 +57,23 @@ service lighttpd init logger -s -t acme-client "New ACME certificates deployed for HTTPS and 'lighttpd' restarted" fi + + ## stunnel server + if [ -n "$STUNNEL_SERVERS" ]; then + service stunnel stop + fi + mkdir -p /mnt/kd/ssl + if [ -f "$_cfullchain" ]; then + cat "$_ckey" "$_cfullchain" > /mnt/kd/ssl/https_stunnel_server.pem + else + cat "$_ckey" "$_ccert" > /mnt/kd/ssl/https_stunnel_server.pem + fi + chmod 600 /mnt/kd/ssl/https_stunnel_server.pem + if [ -n "$STUNNEL_SERVERS" ]; then + sleep 1 + service stunnel init + logger -s -t acme-client "New ACME certificates deployed for HTTPS and 'stunnel' restarted" + fi fi if astlinux_is_acme_service asterisk; then Modified: branches/1.0/package/stunnel/stunnel.init =================================================================== --- branches/1.0/package/stunnel/stunnel.init 2017-07-17 15:19:40 UTC (rev 8452) +++ branches/1.0/package/stunnel/stunnel.init 2017-07-17 18:07:24 UTC (rev 8453) @@ -2,6 +2,8 @@ . /etc/rc.conf +STUNNEL_ACME_SERVER_CERT="/mnt/kd/ssl/https_stunnel_server.pem" + gen_stunnel_config() { local type="$1" stunnel="$2" client="" IFS @@ -68,6 +70,8 @@ fi if [ -n "$STUNNEL_SERVER_CERT" ]; then SCERT="$STUNNEL_SERVER_CERT" + elif [ -f "$STUNNEL_ACME_SERVER_CERT" ]; then + SCERT="$STUNNEL_ACME_SERVER_CERT" elif [ -n "$HTTPSCERT" ]; then SCERT="$HTTPSCERT" else This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |