Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 5 Jun 2016 17:44:02 +0000 (UTC)
From:      Jason Unovitch <junovitch@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-branches@freebsd.org
Subject:   svn commit: r416407 - in branches/2016Q2/www: nginx nginx-devel nginx-devel/files nginx/files
Message-ID:  <201606051744.u55Hi2cl001401@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: junovitch
Date: Sun Jun  5 17:44:02 2016
New Revision: 416407
URL: https://svnweb.freebsd.org/changeset/ports/416407

Log:
  MFH: r412446 r412447 r412449 r412450 r412534 r412535 r412555 r412588 r412645
       r412858 r412862 r413165 r413379 r413380 r413662
  
  Apply CVE-2016-4450 patches to www/nginx and www/nginx-devel following a sync
  with r413662 from head before the major release updates to 1.10.x and 1.11.x
  and configuration change requirement brought about by dynamic module support.
  
  - Enable several vendor's modules to be in sync with vendor's
    original packages for some linux distros, please see
    http://nginx.org/en/linux_packages.html for details.
  - Upgrade nginx-devel from 1.9.12 to 1.9.15; remove needless vendor patches.
  
  Add/upgrade third-party modules:
  o) Upgrade third-party brotli module from 86998c6 to 2fc6f12.
  o) Add AWS proxy third-party module.
  o) Change the third-party http_auth_digest module location and upgrade it.
     Previous location no longer supported by developers.
  o) Upgrade third-party nchan (formerly http_push) module from 0.99.8 to 0.99.11.
  o) Enable vendor's http_realip module by default.
  o) Upgrade third-party njs module from 50fbb3b to c4a5f2b.
  o) Upgrade third-party tarantool module from 966f2f5 to 3599ba0.
  o) Add third-party upstream check module.
  o) Upgrade push from 0.99.11 to 0.99.12;
  o) Upgrade lua from 7410339 to d44f8e0;
  o) Upgrade shibboleth from 20150121 to 4f1119b.
  
  PR:		208499 203967 208380
  Security:	CVE-2016-4450
  Security:	https://vuxml.FreeBSD.org/freebsd/36cf7670-2774-11e6-af29-f0def16c5c1b.html
  Approved by:	ports-secteam (with hat)

Added:
  branches/2016Q2/www/nginx-devel/files/extra-patch-ngx_http_upstream_fair_module.c
     - copied unchanged from r413165, head/www/nginx-devel/files/extra-patch-ngx_http_upstream_fair_module.c
  branches/2016Q2/www/nginx-devel/files/extra-patch-src-http-modules-ngx_http_upstream_hash_module.c
     - copied unchanged from r413165, head/www/nginx-devel/files/extra-patch-src-http-modules-ngx_http_upstream_hash_module.c
  branches/2016Q2/www/nginx-devel/files/extra-patch-src-http-modules-ngx_http_upstream_ip_hash_module.c
     - copied unchanged from r413165, head/www/nginx-devel/files/extra-patch-src-http-modules-ngx_http_upstream_ip_hash_module.c
  branches/2016Q2/www/nginx-devel/files/extra-patch-src-http-modules-ngx_http_upstream_least_conn_module.c
     - copied unchanged from r413165, head/www/nginx-devel/files/extra-patch-src-http-modules-ngx_http_upstream_least_conn_module.c
  branches/2016Q2/www/nginx-devel/files/extra-patch-src-http-ngx_http_upstream_round_robin.c
     - copied unchanged from r413165, head/www/nginx-devel/files/extra-patch-src-http-ngx_http_upstream_round_robin.c
  branches/2016Q2/www/nginx-devel/files/extra-patch-src-http-ngx_http_upstream_round_robin.h
     - copied unchanged from r413165, head/www/nginx-devel/files/extra-patch-src-http-ngx_http_upstream_round_robin.h
  branches/2016Q2/www/nginx-devel/files/patch-CVE-2016-4450   (contents, props changed)
  branches/2016Q2/www/nginx/files/extra-patch-ngx_http_upstream_fair_module.c
     - copied unchanged from r413165, head/www/nginx/files/extra-patch-ngx_http_upstream_fair_module.c
  branches/2016Q2/www/nginx/files/extra-patch-src-http-modules-ngx_http_upstream_hash_module.c
     - copied unchanged from r413165, head/www/nginx/files/extra-patch-src-http-modules-ngx_http_upstream_hash_module.c
  branches/2016Q2/www/nginx/files/extra-patch-src-http-modules-ngx_http_upstream_ip_hash_module.c
     - copied unchanged from r413165, head/www/nginx/files/extra-patch-src-http-modules-ngx_http_upstream_ip_hash_module.c
  branches/2016Q2/www/nginx/files/extra-patch-src-http-modules-ngx_http_upstream_least_conn_module.c
     - copied unchanged from r413165, head/www/nginx/files/extra-patch-src-http-modules-ngx_http_upstream_least_conn_module.c
  branches/2016Q2/www/nginx/files/extra-patch-src-http-ngx_http_upstream_round_robin.c
     - copied unchanged from r413165, head/www/nginx/files/extra-patch-src-http-ngx_http_upstream_round_robin.c
  branches/2016Q2/www/nginx/files/extra-patch-src-http-ngx_http_upstream_round_robin.h
     - copied unchanged from r413165, head/www/nginx/files/extra-patch-src-http-ngx_http_upstream_round_robin.h
  branches/2016Q2/www/nginx/files/patch-CVE-2016-4450   (contents, props changed)
Deleted:
  branches/2016Q2/www/nginx-devel/files/patch-auto-make
  branches/2016Q2/www/nginx-devel/files/patch-perl-as-dynamic-module
Modified:
  branches/2016Q2/www/nginx-devel/Makefile
  branches/2016Q2/www/nginx-devel/distinfo
  branches/2016Q2/www/nginx-devel/files/extra-patch-ngx_http_tarantool-config
  branches/2016Q2/www/nginx/Makefile
  branches/2016Q2/www/nginx/distinfo
  branches/2016Q2/www/nginx/files/extra-patch-ngx_http_tarantool-config
Directory Properties:
  branches/2016Q2/   (props changed)

Modified: branches/2016Q2/www/nginx-devel/Makefile
==============================================================================
--- branches/2016Q2/www/nginx-devel/Makefile	Sun Jun  5 17:44:01 2016	(r416406)
+++ branches/2016Q2/www/nginx-devel/Makefile	Sun Jun  5 17:44:02 2016	(r416407)
@@ -2,7 +2,8 @@
 # $FreeBSD$
 
 PORTNAME=	nginx
-PORTVERSION=	1.9.12
+PORTVERSION=	1.9.15
+PORTREVISION=	1
 CATEGORIES=	www
 MASTER_SITES=	http://nginx.org/download/
 MASTER_SITES+=	LOCAL/osa
@@ -37,6 +38,7 @@ OPTIONS_DEFINE=	\
 	HTTP_GZIP_STATIC \
 	HTTP_GUNZIP_FILTER \
 	HTTP_IMAGE_FILTER \
+	HTTP_MP4 \
 	HTTP_PERL \
 	HTTP_RANDOM_INDEX \
 	HTTP_REALIP \
@@ -59,6 +61,7 @@ OPTIONS_DEFINE=	\
 	THREADS \
 	WWW \
 	AJP \
+	AWS_AUTH \
 	CACHE_PURGE \
 	CLOJURE \
 	CT \
@@ -76,6 +79,7 @@ OPTIONS_DEFINE=	\
 	HTTP_FOOTER \
 	HTTP_JSON_STATUS \
 	HTTP_MOGILEFS \
+	HTTP_MP4_H264 \
 	HTTP_NOTICE \
 	HTTP_PUSH \
 	HTTP_PUSH_STREAM \
@@ -85,6 +89,7 @@ OPTIONS_DEFINE=	\
 	HTTP_TARANTOOL \
 	HTTP_UPLOAD \
 	HTTP_UPLOAD_PROGRESS \
+	HTTP_UPSTREAM_CHECK \
 	HTTP_UPSTREAM_FAIR \
 	HTTP_UPSTREAM_STICKY \
 	HTTP_VIDEO_THUMBEXTRACTOR \
@@ -117,12 +122,13 @@ OPTIONS_DEFINE=	\
 	STATSD \
 	UDPLOG \
 	XRID_HEADER \
-	XSS \
-	VIDEO
+	XSS
 
-OPTIONS_RADIO=		VIDEO
-OPTIONS_RADIO_VIDEO=	HTTP_MP4 HTTP_MP4_H264
-OPTIONS_DEFAULT=	IPV6 HTTP HTTP_CACHE HTTP_REWRITE HTTP_SSL HTTP_STATUS HTTPV2 WWW
+OPTIONS_DEFAULT=IPV6 FILE_AIO HTTP HTTP_ADDITION HTTP_AUTH_REQ HTTP_CACHE \
+		HTTP_DAV HTTP_FLV HTTP_GZIP_STATIC HTTP_GUNZIP_FILTER \
+		HTTP_MP4 HTTP_RANDOM_INDEX HTTP_REALIP HTTP_SECURE_LINK \
+		HTTP_SLICE HTTP_REWRITE HTTP_SSL HTTP_STATUS HTTP_SUB \
+		HTTPV2 MAIL MAIL_SSL STREAM STREAM_SSL THREADS WWW
 
 DEBUGLOG_DESC=			Enable debug log (--with-debug)
 FILE_AIO_DESC=			Enable file aio
@@ -160,6 +166,7 @@ STREAM_SSL_DESC=		Enable stream_ssl modu
 THREADS_DESC=			Enable threads support
 WWW_DESC=			Enable html sample files
 AJP_DESC=			3rd party ajp module
+AWS_AUTH_DESC=			3rd party aws auth module
 CACHE_PURGE_DESC=		3rd party cache_purge module
 CLOJURE_DESC=			3rd party clojure module
 CT_DESC=			3rd party cert_transparency module (SSL req.)
@@ -187,6 +194,7 @@ HTTP_SUBS_FILTER_DESC=		3rd party subs f
 HTTP_TARANTOOL_DESC=		3rd party tarantool upstream module
 HTTP_UPLOAD_DESC=		3rd party upload module
 HTTP_UPLOAD_PROGRESS_DESC=	3rd party uploadprogress module
+HTTP_UPSTREAM_CHECK_DESC=	3rd party upstream check module
 HTTP_UPSTREAM_FAIR_DESC=	3rd party upstream fair module
 HTTP_UPSTREAM_STICKY_DESC=	3rd party upstream sticky module
 HTTP_VIDEO_THUMBEXTRACTOR_DESC=	3rd party video_thumbextractor module
@@ -316,12 +324,11 @@ CONFIGURE_ARGS+=--with-http_addition_mod
 .endif
 
 .if ${PORT_OPTIONS:MHTTP_AUTH_DIGEST}
-GIT_AUTH_DIGEST_VERSION=	bd1c86a
-GH_ACCOUNT+=	samizdatco:auth_digest
+GIT_AUTH_DIGEST_VERSION=	4edfb18
+GH_ACCOUNT+=	atomx:auth_digest
 GH_PROJECT+=	nginx-http-auth-digest:auth_digest
 GH_TAGNAME+=	${GIT_AUTH_DIGEST_VERSION}:auth_digest
 CONFIGURE_ARGS+=--add-module=${WRKSRC_auth_digest}
-EXTRA_PATCHES+=	${PATCHDIR}/extra-patch-ngx_http_auth_digest_module.c
 .endif
 
 .if ${PORT_OPTIONS:MHTTP_AUTH_KRB5}
@@ -368,6 +375,14 @@ GH_TAGNAME+=	${NGINX_AJP_VERSION}:ajp
 CONFIGURE_ARGS+=--add-module=${WRKSRC_ajp}
 .endif
 
+.if ${PORT_OPTIONS:MAWS_AUTH}
+NGINX_AWS_AUTH_VERSION=	1e62670
+GH_ACCOUNT+=	anomalizer:aws_auth
+GH_PROJECT+=	ngx_aws_auth:aws_auth
+GH_TAGNAME+=	${NGINX_AWS_AUTH_VERSION}:aws_auth
+CONFIGURE_ARGS+=--add-module=${WRKSRC_aws_auth}
+.endif
+
 .if ${PORT_OPTIONS:MCACHE_PURGE}
 NGINX_CACHE_PURGE_VERSION=	2.3
 MASTER_SITES+=	http://labs.frickle.com/files/:cache_purge
@@ -521,7 +536,7 @@ USES+=		perl5
 .endif
 
 .if ${PORT_OPTIONS:MHTTP_PUSH}
-GIT_PUSH_VERSION=	0.99.8
+GIT_PUSH_VERSION=	0.99.12
 GH_ACCOUNT+=	slact:push
 GH_PROJECT+=	nchan:push
 GH_TAGNAME+=	v${GIT_PUSH_VERSION}:push
@@ -571,7 +586,7 @@ LIB_DEPENDS+=	libmsgpuck.so:devel/msgpuc
 		libyajl.so:devel/yajl
 GH_ACCOUNT+=	tarantool:nginx_tarantool
 GH_PROJECT+=	nginx_upstream_module:nginx_tarantool
-GH_TAGNAME+=	966f2f5:nginx_tarantool
+GH_TAGNAME+=	3599ba0:nginx_tarantool
 CFLAGS+=	-I${LOCALBASE}/include/msgpuck
 CONFIGURE_ARGS+=--add-module=${WRKSRC_nginx_tarantool}
 EXTRA_PATCHES+=	${PATCHDIR}/extra-patch-ngx_http_tarantool-config
@@ -609,11 +624,28 @@ GH_TAGNAME+=	v${NGINX_UPLOADPROGRESS_VER
 CONFIGURE_ARGS+=--add-module=${WRKSRC_uploadprogress}
 .endif
 
+.if !empty(PORT_OPTIONS:MHTTP_UPSTREAM_CHECK)
+# WWW: https://github.com/yaoweibin/nginx_upstream_check_module
+NGINX_UPSTREAM_CHECK_VERSION=	10782ea
+GH_ACCOUNT+=	yaoweibin:upstreamcheck
+GH_PROJECT+=	nginx_upstream_check_module:upstreamcheck
+GH_TAGNAME+=	${NGINX_UPSTREAM_CHECK_VERSION}:upstreamcheck
+CONFIGURE_ARGS+=--add-module=${WRKSRC_upstreamcheck}
+EXTRA_PATCHES+=	${PATCHDIR}/extra-patch-src-http-modules-ngx_http_upstream_hash_module.c \
+		${PATCHDIR}/extra-patch-src-http-modules-ngx_http_upstream_ip_hash_module.c \
+		${PATCHDIR}/extra-patch-src-http-modules-ngx_http_upstream_least_conn_module.c \
+		${PATCHDIR}/extra-patch-src-http-ngx_http_upstream_round_robin.c \
+		${PATCHDIR}/extra-patch-src-http-ngx_http_upstream_round_robin.h
+.endif
+
 .if !empty(PORT_OPTIONS:MHTTP_UPSTREAM_FAIR)
 NGINX_UPSTREAM_FAIR_VERSION=	20090923
 MASTER_SITES+=	LOCAL/osa:upstreamfair
 DISTFILES+=	nginx_upstream_fair-${NGINX_UPSTREAM_FAIR_VERSION}.tar.gz:upstreamfair
 CONFIGURE_ARGS+=--add-module=${WRKDIR}/nginx_upstream_fair-${NGINX_UPSTREAM_FAIR_VERSION}
+.if !empty(PORT_OPTIONS:MHTTP_UPSTREAM_CHECK)
+EXTRA_PATCHES+=	${PATCHDIR}/extra-patch-ngx_http_upstream_fair_module.c
+.endif
 .endif
 
 .if ${PORT_OPTIONS:MHTTP_UPSTREAM_STICKY}
@@ -706,7 +738,7 @@ CONFIGURE_ARGS+=--add-module=${WRKSRC_le
 LIB_DEPENDS+=	libluajit-5.1.so:lang/luajit
 CONFIGURE_ENV+=	"LUAJIT_INC=${LOCALBASE}/include/luajit-2.0"
 CONFIGURE_ENV+=	"LUAJIT_LIB=${LOCALBASE}/lib"
-NGINX_LUA_VERSION=	7410339
+NGINX_LUA_VERSION=	d44f8e0
 GH_ACCOUNT+=	openresty:lua
 GH_PROJECT+=	lua-nginx-module:lua
 GH_TAGNAME+=	${NGINX_LUA_VERSION}:lua
@@ -827,10 +859,10 @@ EXTRA_PATCHES+=	${PATCHDIR}/extra-patch-
 .endif
 
 .if ${PORT_OPTIONS:MSHIBBOLETH}
-GIT_SHIBBOLETH_VERSION=	20150121
+GIT_SHIBBOLETH_VERSION=	4f1119b
 GH_ACCOUNT+=	nginx-shib:shib
 GH_PROJECT+=	nginx-http-shibboleth:shib
-GH_TAGNAME+=	v${GIT_SHIBBOLETH_VERSION}:shib
+GH_TAGNAME+=	${GIT_SHIBBOLETH_VERSION}:shib
 CONFIGURE_ARGS+=--add-module=${WRKSRC_shib}
 .endif
 
@@ -902,7 +934,7 @@ WITH_OPENSSL_PORT=	yes
 .if ${PORT_OPTIONS:MNJS}
 GH_ACCOUNT+=	nginx:njs
 GH_PROJECT+=	njs:njs
-GH_TAGNAME+=	50fbb3b:njs
+GH_TAGNAME+=	c4a5f2b:njs
 CONFIGURE_ARGS+=--add-dynamic-module=${WRKSRC_njs}/nginx
 .endif
 
@@ -961,7 +993,7 @@ CONFIGURE_ARGS+=--add-module=${WRKSRC_ar
 .endif
 
 .if ${PORT_OPTIONS:MBROTLI}
-NGINX_BROTLI_VERSION=	86998c6
+NGINX_BROTLI_VERSION=	2fc6f12
 LIB_DEPENDS+=	libbrotlidec.so:devel/libbrotli \
 		libbrotlienc.so:devel/libbrotli
 GH_ACCOUNT+=	google:brotli

Modified: branches/2016Q2/www/nginx-devel/distinfo
==============================================================================
--- branches/2016Q2/www/nginx-devel/distinfo	Sun Jun  5 17:44:01 2016	(r416406)
+++ branches/2016Q2/www/nginx-devel/distinfo	Sun Jun  5 17:44:02 2016	(r416407)
@@ -1,5 +1,5 @@
-SHA256 (nginx-1.9.12.tar.gz) = 1af2eb956910ed4b11aaf525a81bc37e135907e7127948f9179f5410337da042
-SIZE (nginx-1.9.12.tar.gz) = 899183
+SHA256 (nginx-1.9.15.tar.gz) = cc89b277cc03f403c0b746d60aa5943cdecf59ae48278f8cb7e2df0cbdb6dac3
+SIZE (nginx-1.9.15.tar.gz) = 908984
 SHA256 (nginx-accesskey-2.0.3.tar.gz) = d9e94321e78a02de16c57f3e048fd31059fd8116ed03d6de7180f435c52502b1
 SIZE (nginx-accesskey-2.0.3.tar.gz) = 2632
 SHA256 (ngx_http_auth_pam_module-1.2.tar.gz) = 5a85970ba61a99f55a26d2536a11d512b39bbd622f5737d25a9a8c10db81efa9
@@ -32,14 +32,16 @@ SHA256 (nginx_udplog_module-1.0.0.tar.gz
 SIZE (nginx_udplog_module-1.0.0.tar.gz) = 6284
 SHA256 (giom-nginx_accept_language_module-2f69842_GH0.tar.gz) = 5534ca63cdfc2a7dc4e1cbf9c2d54d3ed3f0e6c86b4a95be48ec0a3f41cc1eb0
 SIZE (giom-nginx_accept_language_module-2f69842_GH0.tar.gz) = 3393
-SHA256 (samizdatco-nginx-http-auth-digest-bd1c86a_GH0.tar.gz) = d3071ca4b70cfd7f437add772a2aa6ab585dafb5d5a2e3f5cc70af74da72acf2
-SIZE (samizdatco-nginx-http-auth-digest-bd1c86a_GH0.tar.gz) = 14458
+SHA256 (atomx-nginx-http-auth-digest-4edfb18_GH0.tar.gz) = 8b831fccda3ce9bdf854a3aefa1e466a8da97ca0a5feb33a28b4f117f517b82e
+SIZE (atomx-nginx-http-auth-digest-4edfb18_GH0.tar.gz) = 16007
 SHA256 (stnoonan-spnego-http-auth-nginx-module-c85a38c_GH0.tar.gz) = b47b23a362aa338c377d6163d15abee6f33ff16bac5f86ee4d9543293fe8c4d1
 SIZE (stnoonan-spnego-http-auth-nginx-module-c85a38c_GH0.tar.gz) = 18120
 SHA256 (kvspb-nginx-auth-ldap-8517bb0_GH0.tar.gz) = a69cf8d5490620d5507d712fa234e137d9404e9c250563f2eb421eafa6209975
 SIZE (kvspb-nginx-auth-ldap-8517bb0_GH0.tar.gz) = 16947
 SHA256 (yaoweibin-nginx_ajp_module-bf6cd93_GH0.tar.gz) = 9e3f78ea73e2d606a95ee64fd3affa4c249f9b342e66b6b11b63061791f28316
 SIZE (yaoweibin-nginx_ajp_module-bf6cd93_GH0.tar.gz) = 109704
+SHA256 (anomalizer-ngx_aws_auth-1e62670_GH0.tar.gz) = db7ceef4ae22cf5bfaf5abae64830dfeef203ca85f9f40f7d1f1d90f277478c0
+SIZE (anomalizer-ngx_aws_auth-1e62670_GH0.tar.gz) = 8260
 SHA256 (nginx-clojure-nginx-clojure-v0.4.4_GH0.tar.gz) = 642ebf4724fa7c3efd5349e60b442ac8671497406834804c903ec548bfdcb691
 SIZE (nginx-clojure-nginx-clojure-v0.4.4_GH0.tar.gz) = 603856
 SHA256 (grahamedgecombe-nginx-ct-f3cad5e_GH0.tar.gz) = 846e148f09ffea2ffc1b09b20c84408e23c170313f967513a85009717227c13a
@@ -60,18 +62,20 @@ SHA256 (nginx-modules-ngx_http_json_stat
 SIZE (nginx-modules-ngx_http_json_status_module-1d2f303_GH0.tar.gz) = 6736
 SHA256 (kr-nginx-notice-3c95966_GH0.tar.gz) = e829fc94178cc8c91fef15a1fc44ee7ac162c13eddc0bba4c9427aaa23386885
 SIZE (kr-nginx-notice-3c95966_GH0.tar.gz) = 3343
-SHA256 (slact-nchan-v0.99.8_GH0.tar.gz) = 3b25cbd7aff9742dac15d64d55f67a4ab83fc52053111ddd3fd0b8f2932682d1
-SIZE (slact-nchan-v0.99.8_GH0.tar.gz) = 344368
+SHA256 (slact-nchan-v0.99.12_GH0.tar.gz) = b761255489c617aa270910f3ba02af1adbd42e299116cdd465c80dda1b2acf07
+SIZE (slact-nchan-v0.99.12_GH0.tar.gz) = 358336
 SHA256 (wandenberg-nginx-push-stream-module-0.5.1_GH0.tar.gz) = a95f31e80120fd7324795b92a0d94c0b43e1265df7fd0f1eba11a337c1e0a626
 SIZE (wandenberg-nginx-push-stream-module-0.5.1_GH0.tar.gz) = 175263
 SHA256 (yaoweibin-ngx_http_substitutions_filter_module-v0.6.4_GH0.tar.gz) = ed4ddbcf0c434f4a1e97b61251a63ace759792764bd5cb79ff20efe348db8db3
 SIZE (yaoweibin-ngx_http_substitutions_filter_module-v0.6.4_GH0.tar.gz) = 92230
-SHA256 (tarantool-nginx_upstream_module-966f2f5_GH0.tar.gz) = 8142475d8ecf0c02d2fc8051364729d842fe06b0b445b416c87c2f796bb42fa7
-SIZE (tarantool-nginx_upstream_module-966f2f5_GH0.tar.gz) = 873343
+SHA256 (tarantool-nginx_upstream_module-3599ba0_GH0.tar.gz) = 9f4c60a742786b3507fb69fb9fb653cec08114399ce0e65a06ea5fb532030713
+SIZE (tarantool-nginx_upstream_module-3599ba0_GH0.tar.gz) = 877305
 SHA256 (vkholodkov-nginx-upload-module-aba1e3f34c_GH0.tar.gz) = 62a2c4388585aec463a1cee30bc84953593a93f341dc1df61b42b452594d2a05
 SIZE (vkholodkov-nginx-upload-module-aba1e3f34c_GH0.tar.gz) = 28296
 SHA256 (masterzen-nginx-upload-progress-module-v0.9.0_GH0.tar.gz) = 93e29b9b437a2e34713de54c2861ea51151624aca09f73f9f44d1caaff01a6b1
 SIZE (masterzen-nginx-upload-progress-module-v0.9.0_GH0.tar.gz) = 16990
+SHA256 (yaoweibin-nginx_upstream_check_module-10782ea_GH0.tar.gz) = 52e6acd8c0264a59c5c948271015a59acd3cbcf91377456b7c8dc6f9feecef4a
+SIZE (yaoweibin-nginx_upstream_check_module-10782ea_GH0.tar.gz) = 128281
 SHA256 (wandenberg-nginx-video-thumbextractor-module-0.7.0_GH0.tar.gz) = 382bb41fa739f471fdab9fbabc5384d8ec7f25b5bb0c45c153f5cc01d428abe2
 SIZE (wandenberg-nginx-video-thumbextractor-module-0.7.0_GH0.tar.gz) = 2709351
 SHA256 (openresty-drizzle-nginx-module-v0.1.9_GH0.tar.gz) = aafb79d87273eec023025333c34d6d0108026a1ce2e09b20a53e8e2d9bf65080
@@ -88,8 +92,8 @@ SHA256 (mongodb-mongo-c-driver-v0.3.1_GH
 SIZE (mongodb-mongo-c-driver-v0.3.1_GH0.tar.gz) = 53024
 SHA256 (arut-nginx-let-module-v0.0.4_GH0.tar.gz) = cbf6fcddc00a7e30289134bdeace12565e000cc7d4efee2d2ebb8799d0b88270
 SIZE (arut-nginx-let-module-v0.0.4_GH0.tar.gz) = 20534
-SHA256 (openresty-lua-nginx-module-7410339_GH0.tar.gz) = 1b78f243ea95efcfd6f5bda43fbe5849bff931b9620d22c75b3de6590e09c684
-SIZE (openresty-lua-nginx-module-7410339_GH0.tar.gz) = 574764
+SHA256 (openresty-lua-nginx-module-d44f8e0_GH0.tar.gz) = e63997f54dc01dcef82598f4423e5433ac46a26606ea9e8b59f631374b326e42
+SIZE (openresty-lua-nginx-module-d44f8e0_GH0.tar.gz) = 575604
 SHA256 (openresty-memc-nginx-module-v0.16_GH0.tar.gz) = 24f3c3270831aed2d157c01ef74cb26eab26b832971fe7b9f42a03dbfac10ce4
 SIZE (openresty-memc-nginx-module-v0.16_GH0.tar.gz) = 38560
 SHA256 (nbs-system-naxsi-0.54_GH0.tar.gz) = 9cc2c09405bc71f78ef26a8b6d70afcea3fccbe8125df70cb0cfc480133daba5
@@ -106,8 +110,8 @@ SHA256 (arut-nginx-rtmp-module-v1.1.7_GH
 SIZE (arut-nginx-rtmp-module-v1.1.7_GH0.tar.gz) = 519735
 SHA256 (openresty-set-misc-nginx-module-6582fb4_GH0.tar.gz) = cc325830477dfcdbb355fc7b19cbc2f4e55c179b3b56fdfe0613b5a7b926235e
 SIZE (openresty-set-misc-nginx-module-6582fb4_GH0.tar.gz) = 35961
-SHA256 (nginx-shib-nginx-http-shibboleth-v20150121_GH0.tar.gz) = e38a19bb4d30e5487c013c4b6b3e3d5b96de82d63b776471cc2c381a5d00374d
-SIZE (nginx-shib-nginx-http-shibboleth-v20150121_GH0.tar.gz) = 10106
+SHA256 (nginx-shib-nginx-http-shibboleth-4f1119b_GH0.tar.gz) = c25f284bc934f59a267d319385a3e11858efef786c84b49a77d09e7f5274bbf1
+SIZE (nginx-shib-nginx-http-shibboleth-4f1119b_GH0.tar.gz) = 16688
 SHA256 (cubicdaiya-ngx_small_light-v0.6.15_GH0.tar.gz) = 9bc9c221287a6db56a4a0eb7ac35a560fc15dfd6dafcb500fdea49a583527716
 SIZE (cubicdaiya-ngx_small_light-v0.6.15_GH0.tar.gz) = 54695
 SHA256 (openresty-srcache-nginx-module-v0.30_GH0.tar.gz) = e34b1ab5f5007661f73819f9c20fd6c2a46ed3e53364e9449b02ef2bd3628633
@@ -118,12 +122,12 @@ SHA256 (gabor-nginx-x-rid-header-0daa3cc
 SIZE (gabor-nginx-x-rid-header-0daa3cc_GH0.tar.gz) = 2711
 SHA256 (openresty-xss-nginx-module-v0.04_GH0.tar.gz) = 4e5230a644779b8298063d5c0bd7dc19531496369456d69dc5281ae1cca4d6ec
 SIZE (openresty-xss-nginx-module-v0.04_GH0.tar.gz) = 10536
-SHA256 (nginx-njs-50fbb3b_GH0.tar.gz) = dd82502ff1ca0f68a0c6cdc43e26443b0d85429906cd21485fb92e4f0a09fd6c
-SIZE (nginx-njs-50fbb3b_GH0.tar.gz) = 142336
+SHA256 (nginx-njs-c4a5f2b_GH0.tar.gz) = 90859b979c76ad04fa3b45ed773ddfe14b6a9ca0b6d70626aa3293c2aad3d52d
+SIZE (nginx-njs-c4a5f2b_GH0.tar.gz) = 150513
 SHA256 (openresty-array-var-nginx-module-v0.03_GH0.tar.gz) = f9892ec9a2e872d8aabeb2234d0d4c66cf85b8dbb2ca5c108a20c3d8c2111189
 SIZE (openresty-array-var-nginx-module-v0.03_GH0.tar.gz) = 9520
-SHA256 (google-ngx_brotli-86998c6_GH0.tar.gz) = 463a583cfbeacdf6d6db5630afaddc9eebeec44301ca68c660cc8fdf4580e5aa
-SIZE (google-ngx_brotli-86998c6_GH0.tar.gz) = 10890
+SHA256 (google-ngx_brotli-2fc6f12_GH0.tar.gz) = f72daeb63db97e4facf99f6917f55f5d33e52f7f18d87c01fac05ec50274054f
+SIZE (google-ngx_brotli-2fc6f12_GH0.tar.gz) = 10960
 SHA256 (calio-form-input-nginx-module-v0.07_GH0.tar.gz) = c0c56cc697a290e98b88d4888bac8828041ef6f3049247d3cd3c63f2808d1e20
 SIZE (calio-form-input-nginx-module-v0.07_GH0.tar.gz) = 10563
 SHA256 (calio-iconv-nginx-module-v0.10_GH0.tar.gz) = 88e326eba7fdf9fd2376b1ba033b48cb0eee45136528cf5430ac9340088ce324

Modified: branches/2016Q2/www/nginx-devel/files/extra-patch-ngx_http_tarantool-config
==============================================================================
--- branches/2016Q2/www/nginx-devel/files/extra-patch-ngx_http_tarantool-config	Sun Jun  5 17:44:01 2016	(r416406)
+++ branches/2016Q2/www/nginx-devel/files/extra-patch-ngx_http_tarantool-config	Sun Jun  5 17:44:02 2016	(r416407)
@@ -1,5 +1,5 @@
---- ../nginx_upstream_module-966f2f5/config.orig	2015-08-20 23:33:02.000000000 +0300
-+++ ../nginx_upstream_module-966f2f5/config	2015-08-23 16:04:59.572045669 +0300
+--- ../nginx_upstream_module-3599ba0/config.orig	2015-08-20 23:33:02.000000000 +0300
++++ ../nginx_upstream_module-3599ba0/config	2015-08-23 16:04:59.572045669 +0300
 @@ -4,7 +4,7 @@
            "
  

Copied: branches/2016Q2/www/nginx-devel/files/extra-patch-ngx_http_upstream_fair_module.c (from r413165, head/www/nginx-devel/files/extra-patch-ngx_http_upstream_fair_module.c)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/2016Q2/www/nginx-devel/files/extra-patch-ngx_http_upstream_fair_module.c	Sun Jun  5 17:44:02 2016	(r416407, copy of r413165, head/www/nginx-devel/files/extra-patch-ngx_http_upstream_fair_module.c)
@@ -0,0 +1,89 @@
+--- ../nginx_upstream_fair-20090923/ngx_http_upstream_fair_module.c.orig	2009-09-24 01:38:16.000000000 +0800
++++ ../nginx_upstream_fair-20090923/ngx_http_upstream_fair_module.c	2016-03-24 13:56:02.990728000 +0800
+@@ -9,6 +9,10 @@
+ #include <ngx_core.h>
+ #include <ngx_http.h>
+ 
++#if (NGX_HTTP_UPSTREAM_CHECK)
++#include "ngx_http_upstream_check_module.h"
++#endif
++
+ typedef struct {
+     ngx_uint_t                          nreq;
+     ngx_uint_t                          total_req;
+@@ -42,6 +46,10 @@
+     ngx_uint_t                          max_fails;
+     time_t                              fail_timeout;
+ 
++#if (NGX_HTTP_UPSTREAM_CHECK)
++    ngx_uint_t                          check_index;
++#endif
++
+     time_t                              accessed;
+     ngx_uint_t                          down:1;
+ 
+@@ -474,6 +482,15 @@
+                 peers->peer[n].fail_timeout = server[i].fail_timeout;
+                 peers->peer[n].down = server[i].down;
+                 peers->peer[n].weight = server[i].down ? 0 : server[i].weight;
++#if (NGX_HTTP_UPSTREAM_CHECK)
++                if (!server[i].down) {
++                    peers->peer[n].check_index =
++                        ngx_http_upstream_check_add_peer(cf, us, &server[i].addrs[j]);
++                }
++                else {
++                    peers->peer[n].check_index = (ngx_uint_t) NGX_ERROR;
++                }
++#endif
+                 n++;
+             }
+         }
+@@ -524,6 +541,15 @@
+                 backup->peer[n].max_fails = server[i].max_fails;
+                 backup->peer[n].fail_timeout = server[i].fail_timeout;
+                 backup->peer[n].down = server[i].down;
++#if (NGX_HTTP_UPSTREAM_CHECK)
++                if (!server[i].down) {
++                    backup->peer[n].check_index =
++                        ngx_http_upstream_check_add_peer(cf, us, &server[i].addrs[j]);
++                }
++                else {
++                    backup->peer[n].check_index = (ngx_uint_t) NGX_ERROR;
++                }
++#endif
+                 n++;
+             }
+         }
+@@ -580,6 +606,9 @@
+         peers->peer[i].weight = 1;
+         peers->peer[i].max_fails = 1;
+         peers->peer[i].fail_timeout = 10;
++#if (NGX_HTTP_UPSTREAM_CHECK)
++        peers->peer[i].check_index = (ngx_uint_t) NGX_ERROR;
++#endif
+     }
+ 
+     us->peer.data = peers;
+@@ -721,6 +750,12 @@
+     peer = &fp->peers->peer[peer_id];
+ 
+     if (!peer->down) {
++#if (NGX_HTTP_UPSTREAM_CHECK)
++        ngx_log_debug1(NGX_LOG_DEBUG_HTTP, pc->log, 0,
++                       "[upstream_fair] get fair peer, check_index: %ui",
++                       peer->check_index);
++        if (!ngx_http_upstream_check_peer_down(peer->check_index)) {
++#endif
+         if (peer->max_fails == 0 || peer->shared->fails < peer->max_fails) {
+             return NGX_OK;
+         }
+@@ -731,6 +766,9 @@
+             peer->shared->fails = 0;
+             return NGX_OK;
+         }
++#if (NGX_HTTP_UPSTREAM_CHECK)
++        }
++#endif
+     }
+ 
+     return NGX_BUSY;

Copied: branches/2016Q2/www/nginx-devel/files/extra-patch-src-http-modules-ngx_http_upstream_hash_module.c (from r413165, head/www/nginx-devel/files/extra-patch-src-http-modules-ngx_http_upstream_hash_module.c)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/2016Q2/www/nginx-devel/files/extra-patch-src-http-modules-ngx_http_upstream_hash_module.c	Sun Jun  5 17:44:02 2016	(r416407, copy of r413165, head/www/nginx-devel/files/extra-patch-src-http-modules-ngx_http_upstream_hash_module.c)
@@ -0,0 +1,44 @@
+--- src/http/modules/ngx_http_upstream_hash_module.c.orig	2016-02-24 14:53:24 UTC
++++ src/http/modules/ngx_http_upstream_hash_module.c
+@@ -9,6 +9,9 @@
+ #include <ngx_core.h>
+ #include <ngx_http.h>
+ 
++#if (NGX_HTTP_UPSTREAM_CHECK)
++#include "ngx_http_upstream_check_module.h"
++#endif
+ 
+ typedef struct {
+     uint32_t                            hash;
+@@ -235,6 +238,15 @@ ngx_http_upstream_get_hash_peer(ngx_peer
+             goto next;
+         }
+ 
++#if (NGX_HTTP_UPSTREAM_CHECK)
++        ngx_log_debug1(NGX_LOG_DEBUG_HTTP, pc->log, 0,
++            "get hash peer, check_index: %ui",
++             peer->check_index);
++        if (ngx_http_upstream_check_peer_down(peer->check_index)) {
++            goto next;
++        }
++#endif
++
+         if (peer->max_fails
+             && peer->fails >= peer->max_fails
+             && now - peer->checked <= peer->fail_timeout)
+@@ -535,6 +547,15 @@ ngx_http_upstream_get_chash_peer(ngx_pee
+                 continue;
+             }
+ 
++#if (NGX_HTTP_UPSTREAM_CHECK)
++            ngx_log_debug1(NGX_LOG_DEBUG_HTTP, pc->log, 0,
++                "get consistent_hash peer, check_index: %ui",
++                 peer->check_index);
++            if (ngx_http_upstream_check_peer_down(peer->check_index)) {
++                continue;
++            }
++#endif
++
+             if (peer->server.len != server->len
+                 || ngx_strncmp(peer->server.data, server->data, server->len)
+                    != 0)

Copied: branches/2016Q2/www/nginx-devel/files/extra-patch-src-http-modules-ngx_http_upstream_ip_hash_module.c (from r413165, head/www/nginx-devel/files/extra-patch-src-http-modules-ngx_http_upstream_ip_hash_module.c)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/2016Q2/www/nginx-devel/files/extra-patch-src-http-modules-ngx_http_upstream_ip_hash_module.c	Sun Jun  5 17:44:02 2016	(r416407, copy of r413165, head/www/nginx-devel/files/extra-patch-src-http-modules-ngx_http_upstream_ip_hash_module.c)
@@ -0,0 +1,28 @@
+--- src/http/modules/ngx_http_upstream_ip_hash_module.c.orig	2016-02-24 14:53:24 UTC
++++ src/http/modules/ngx_http_upstream_ip_hash_module.c
+@@ -9,6 +9,9 @@
+ #include <ngx_core.h>
+ #include <ngx_http.h>
+ 
++#if (NGX_HTTP_UPSTREAM_CHECK)
++#include "ngx_http_upstream_check_module.h"
++#endif
+ 
+ typedef struct {
+     /* the round robin data must be first */
+@@ -205,6 +208,15 @@ ngx_http_upstream_get_ip_hash_peer(ngx_p
+             goto next;
+         }
+ 
++#if (NGX_HTTP_UPSTREAM_CHECK)
++        ngx_log_debug1(NGX_LOG_DEBUG_HTTP, pc->log, 0,
++            "get ip_hash peer, check_index: %ui",
++             peer->check_index);
++        if (ngx_http_upstream_check_peer_down(peer->check_index)) {
++            goto next;
++        }
++#endif
++
+         if (peer->max_fails
+             && peer->fails >= peer->max_fails
+             && now - peer->checked <= peer->fail_timeout)

Copied: branches/2016Q2/www/nginx-devel/files/extra-patch-src-http-modules-ngx_http_upstream_least_conn_module.c (from r413165, head/www/nginx-devel/files/extra-patch-src-http-modules-ngx_http_upstream_least_conn_module.c)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/2016Q2/www/nginx-devel/files/extra-patch-src-http-modules-ngx_http_upstream_least_conn_module.c	Sun Jun  5 17:44:02 2016	(r416407, copy of r413165, head/www/nginx-devel/files/extra-patch-src-http-modules-ngx_http_upstream_least_conn_module.c)
@@ -0,0 +1,46 @@
+--- src/http/modules/ngx_http_upstream_least_conn_module.c.orig	2016-02-24 14:53:24 UTC
++++ src/http/modules/ngx_http_upstream_least_conn_module.c
+@@ -9,6 +9,9 @@
+ #include <ngx_core.h>
+ #include <ngx_http.h>
+ 
++#if (NGX_HTTP_UPSTREAM_CHECK)
++#include "ngx_http_upstream_check_module.h"
++#endif
+ 
+ static ngx_int_t ngx_http_upstream_init_least_conn_peer(ngx_http_request_t *r,
+     ngx_http_upstream_srv_conf_t *us);
+@@ -148,6 +151,16 @@ ngx_http_upstream_get_least_conn_peer(ng
+             continue;
+         }
+ 
++#if (NGX_HTTP_UPSTREAM_CHECK)
++        ngx_log_debug1(NGX_LOG_DEBUG_HTTP, pc->log, 0,
++                "get least_conn peer, check_index: %ui",
++                peer->check_index);
++
++        if (ngx_http_upstream_check_peer_down(peer->check_index)) {
++            continue;
++        }
++#endif
++
+         if (peer->max_fails
+             && peer->fails >= peer->max_fails
+             && now - peer->checked <= peer->fail_timeout)
+@@ -199,6 +212,16 @@ ngx_http_upstream_get_least_conn_peer(ng
+                 continue;
+             }
+ 
++#if (NGX_HTTP_UPSTREAM_CHECK)
++            ngx_log_debug1(NGX_LOG_DEBUG_HTTP, pc->log, 0,
++                    "get least_conn peer, check_index: %ui",
++                    peer->check_index);
++
++            if (ngx_http_upstream_check_peer_down(peer->check_index)) {
++                continue;
++            }
++#endif
++
+             if (peer->conns * best->weight != best->conns * peer->weight) {
+                 continue;
+             }

Copied: branches/2016Q2/www/nginx-devel/files/extra-patch-src-http-ngx_http_upstream_round_robin.c (from r413165, head/www/nginx-devel/files/extra-patch-src-http-ngx_http_upstream_round_robin.c)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/2016Q2/www/nginx-devel/files/extra-patch-src-http-ngx_http_upstream_round_robin.c	Sun Jun  5 17:44:02 2016	(r416407, copy of r413165, head/www/nginx-devel/files/extra-patch-src-http-ngx_http_upstream_round_robin.c)
@@ -0,0 +1,101 @@
+--- src/http/ngx_http_upstream_round_robin.c.orig	2016-02-24 14:53:24 UTC
++++ src/http/ngx_http_upstream_round_robin.c
+@@ -9,6 +9,9 @@
+ #include <ngx_core.h>
+ #include <ngx_http.h>
+ 
++#if (NGX_HTTP_UPSTREAM_CHECK)
++#include "ngx_http_upstream_check_module.h"
++#endif
+ 
+ #define ngx_http_upstream_tries(p) ((p)->number                               \
+                                     + ((p)->next ? (p)->next->number : 0))
+@@ -96,7 +99,14 @@ ngx_http_upstream_init_round_robin(ngx_c
+                 peer[n].fail_timeout = server[i].fail_timeout;
+                 peer[n].down = server[i].down;
+                 peer[n].server = server[i].name;
+-
++#if (NGX_HTTP_UPSTREAM_CHECK)
++                if (!server[i].down) {
++                    peer[n].check_index =
++                        ngx_http_upstream_check_add_peer(cf, us, &server[i].addrs[j]);
++                } else {
++                    peer[n].check_index = (ngx_uint_t) NGX_ERROR;
++                }
++#endif
+                 *peerp = &peer[n];
+                 peerp = &peer[n].next;
+                 n++;
+@@ -159,7 +169,15 @@ ngx_http_upstream_init_round_robin(ngx_c
+                 peer[n].fail_timeout = server[i].fail_timeout;
+                 peer[n].down = server[i].down;
+                 peer[n].server = server[i].name;
+-
++#if (NGX_HTTP_UPSTREAM_CHECK)
++                if (!server[i].down) {
++                    peer[n].check_index =
++                        ngx_http_upstream_check_add_peer(cf, us, &server[i].addrs[j]);
++                }
++                else {
++                    peer[n].check_index = (ngx_uint_t) NGX_ERROR;
++                }
++#endif
+                 *peerp = &peer[n];
+                 peerp = &peer[n].next;
+                 n++;
+@@ -225,6 +243,9 @@ ngx_http_upstream_init_round_robin(ngx_c
+         peer[i].current_weight = 0;
+         peer[i].max_fails = 1;
+         peer[i].fail_timeout = 10;
++#if (NGX_HTTP_UPSTREAM_CHECK)
++        peer[i].check_index = (ngx_uint_t) NGX_ERROR;
++#endif
+         *peerp = &peer[i];
+         peerp = &peer[i].next;
+     }
+@@ -339,6 +360,9 @@ ngx_http_upstream_create_round_robin_pee
+         peer[0].current_weight = 0;
+         peer[0].max_fails = 1;
+         peer[0].fail_timeout = 10;
++#if (NGX_HTTP_UPSTREAM_CHECK)
++        peer[0].check_index = (ngx_uint_t) NGX_ERROR;
++#endif
+         peers->peer = peer;
+ 
+     } else {
+@@ -381,6 +405,9 @@ ngx_http_upstream_create_round_robin_pee
+             peer[i].current_weight = 0;
+             peer[i].max_fails = 1;
+             peer[i].fail_timeout = 10;
++#if (NGX_HTTP_UPSTREAM_CHECK)
++            peer[i].check_index = (ngx_uint_t) NGX_ERROR;
++#endif
+             *peerp = &peer[i];
+             peerp = &peer[i].next;
+         }
+@@ -441,6 +468,12 @@ ngx_http_upstream_get_round_robin_peer(n
+             goto failed;
+         }
+ 
++#if (NGX_HTTP_UPSTREAM_CHECK)
++        if (ngx_http_upstream_check_peer_down(peer->check_index)) {
++            goto failed;
++        }
++#endif
++
+         rrp->current = peer;
+ 
+     } else {
+@@ -542,6 +575,12 @@ ngx_http_upstream_get_peer(ngx_http_upst
+             continue;
+         }
+ 
++#if (NGX_HTTP_UPSTREAM_CHECK)
++        if (ngx_http_upstream_check_peer_down(peer->check_index)) {
++            continue;
++        }
++#endif
++
+         if (peer->max_fails
+             && peer->fails >= peer->max_fails
+             && now - peer->checked <= peer->fail_timeout)

Copied: branches/2016Q2/www/nginx-devel/files/extra-patch-src-http-ngx_http_upstream_round_robin.h (from r413165, head/www/nginx-devel/files/extra-patch-src-http-ngx_http_upstream_round_robin.h)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/2016Q2/www/nginx-devel/files/extra-patch-src-http-ngx_http_upstream_round_robin.h	Sun Jun  5 17:44:02 2016	(r416407, copy of r413165, head/www/nginx-devel/files/extra-patch-src-http-ngx_http_upstream_round_robin.h)
@@ -0,0 +1,13 @@
+--- src/http/ngx_http_upstream_round_robin.h.orig	2016-02-24 14:53:24 UTC
++++ src/http/ngx_http_upstream_round_robin.h
+@@ -35,6 +35,10 @@ struct ngx_http_upstream_rr_peer_s {
+     ngx_uint_t                      max_fails;
+     time_t                          fail_timeout;
+ 
++#if (NGX_HTTP_UPSTREAM_CHECK)
++    ngx_uint_t                      check_index;
++#endif
++
+     ngx_uint_t                      down;          /* unsigned  down:1; */
+ 
+ #if (NGX_HTTP_SSL)

Added: branches/2016Q2/www/nginx-devel/files/patch-CVE-2016-4450
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/2016Q2/www/nginx-devel/files/patch-CVE-2016-4450	Sun Jun  5 17:44:02 2016	(r416407)
@@ -0,0 +1,14 @@
+--- src/os/unix/ngx_files.c
++++ src/os/unix/ngx_files.c
+@@ -356,6 +356,11 @@
+     n = 0;
+ 
+     for ( /* void */ ; cl; cl = cl->next) {
++
++        if (ngx_buf_special(cl->buf)) {
++            continue;
++        }
++
+         size = cl->buf->last - cl->buf->pos;
+ 
+         if (prev == cl->buf->pos) {

Modified: branches/2016Q2/www/nginx/Makefile
==============================================================================
--- branches/2016Q2/www/nginx/Makefile	Sun Jun  5 17:44:01 2016	(r416406)
+++ branches/2016Q2/www/nginx/Makefile	Sun Jun  5 17:44:02 2016	(r416407)
@@ -3,7 +3,7 @@
 
 PORTNAME=	nginx
 PORTVERSION=	1.8.1
-PORTREVISION=	0
+PORTREVISION=	3
 PORTEPOCH=	2
 CATEGORIES=	www
 MASTER_SITES=	http://nginx.org/download/
@@ -38,6 +38,7 @@ OPTIONS_DEFINE=	\
 	HTTP_GZIP_STATIC \
 	HTTP_GUNZIP_FILTER \
 	HTTP_IMAGE_FILTER \
+	HTTP_MP4 \
 	HTTP_PERL \
 	HTTP_RANDOM_INDEX \
 	HTTP_REALIP \
@@ -56,6 +57,7 @@ OPTIONS_DEFINE=	\
 	THREADS \
 	WWW \
 	AJP \
+	AWS_AUTH \
 	CACHE_PURGE \
 	CLOJURE \
 	CT \
@@ -73,6 +75,7 @@ OPTIONS_DEFINE=	\
 	HTTP_FOOTER \
 	HTTP_JSON_STATUS \
 	HTTP_MOGILEFS \
+	HTTP_MP4_H264 \
 	HTTP_NOTICE \
 	HTTP_PUSH \
 	HTTP_PUSH_STREAM \
@@ -82,6 +85,7 @@ OPTIONS_DEFINE=	\
 	HTTP_TARANTOOL \
 	HTTP_UPLOAD \
 	HTTP_UPLOAD_PROGRESS \
+	HTTP_UPSTREAM_CHECK \
 	HTTP_UPSTREAM_FAIR \
 	HTTP_UPSTREAM_STICKY \
 	HTTP_VIDEO_THUMBEXTRACTOR \
@@ -113,12 +117,13 @@ OPTIONS_DEFINE=	\
 	STATSD \
 	UDPLOG \
 	XRID_HEADER \
-	XSS \
-	VIDEO
+	XSS
 
-OPTIONS_RADIO=		VIDEO
-OPTIONS_RADIO_VIDEO=	HTTP_MP4 HTTP_MP4_H264
-OPTIONS_DEFAULT=	IPV6 HTTP HTTP_CACHE HTTP_REWRITE HTTP_SSL HTTP_STATUS WWW
+OPTIONS_DEFAULT=IPV6 FILE_AIO HTTP HTTP_ADDITION HTTP_AUTH_REQ HTTP_CACHE \
+		HTTP_DAV HTTP_FLV HTTP_GZIP_STATIC HTTP_GUNZIP_FILTER \
+		HTTP_MP4 HTTP_RANDOM_INDEX HTTP_REALIP HTTP_SECURE_LINK \
+		HTTP_REWRITE HTTP_SSL HTTP_STATUS HTTP_SUB MAIL MAIL_SSL \
+		SPDY WWW
 
 DEBUGLOG_DESC=			Enable debug log (--with-debug)
 FILE_AIO_DESC=			Enable file aio
@@ -152,6 +157,7 @@ SPDY_DESC=			Enable SPDY protocol suppor
 THREADS_DESC=			Enable threads support
 WWW_DESC=			Enable html sample files
 AJP_DESC=			3rd party ajp module
+AWS_AUTH_DESC=			3rd party aws auth module
 CACHE_PURGE_DESC=		3rd party cache_purge module
 CLOJURE_DESC=			3rd party clojure module
 CT_DESC=			3rd party cert_transparency module (SSL req.)
@@ -179,6 +185,7 @@ HTTP_SUBS_FILTER_DESC=		3rd party subs f
 HTTP_TARANTOOL_DESC=		3rd party tarantool upstream module
 HTTP_UPLOAD_DESC=		3rd party upload module
 HTTP_UPLOAD_PROGRESS_DESC=	3rd party uploadprogress module
+HTTP_UPSTREAM_CHECK_DESC=	3rd party upstream check module
 HTTP_UPSTREAM_FAIR_DESC=	3rd party upstream fair module
 HTTP_UPSTREAM_STICKY_DESC=	3rd party upstream sticky module
 HTTP_VIDEO_THUMBEXTRACTOR_DESC=	3rd party video_thumbextractor module
@@ -305,12 +312,11 @@ CONFIGURE_ARGS+=--with-http_addition_mod
 .endif
 
 .if ${PORT_OPTIONS:MHTTP_AUTH_DIGEST}
-GIT_AUTH_DIGEST_VERSION=	bd1c86a
-GH_ACCOUNT+=	samizdatco:auth_digest
+GIT_AUTH_DIGEST_VERSION=	4edfb18
+GH_ACCOUNT+=	atomx:auth_digest
 GH_PROJECT+=	nginx-http-auth-digest:auth_digest
 GH_TAGNAME+=	${GIT_AUTH_DIGEST_VERSION}:auth_digest
 CONFIGURE_ARGS+=--add-module=${WRKSRC_auth_digest}
-EXTRA_PATCHES+=	${PATCHDIR}/extra-patch-ngx_http_auth_digest_module.c
 .endif
 
 .if ${PORT_OPTIONS:MHTTP_AUTH_KRB5}
@@ -357,6 +363,14 @@ GH_TAGNAME+=	${NGINX_AJP_VERSION}:ajp
 CONFIGURE_ARGS+=--add-module=${WRKSRC_ajp}
 .endif
 
+.if ${PORT_OPTIONS:MAWS_AUTH}
+NGINX_AWS_AUTH_VERSION=	1e62670
+GH_ACCOUNT+=	anomalizer:aws_auth
+GH_PROJECT+=	ngx_aws_auth:aws_auth
+GH_TAGNAME+=	${NGINX_AWS_AUTH_VERSION}:aws_auth
+CONFIGURE_ARGS+=--add-module=${WRKSRC_aws_auth}
+.endif
+
 .if ${PORT_OPTIONS:MCACHE_PURGE}
 NGINX_CACHE_PURGE_VERSION=	2.3
 MASTER_SITES+=	http://labs.frickle.com/files/:cache_purge
@@ -510,7 +524,7 @@ USES+=		perl5
 .endif
 
 .if ${PORT_OPTIONS:MHTTP_PUSH}
-GIT_PUSH_VERSION=	0.99.8
+GIT_PUSH_VERSION=	0.99.12
 GH_ACCOUNT+=	slact:push
 GH_PROJECT+=	nchan:push
 GH_TAGNAME+=	v${GIT_PUSH_VERSION}:push
@@ -560,7 +574,7 @@ LIB_DEPENDS+=	libmsgpuck.so:devel/msgpuc
 		libyajl.so:devel/yajl
 GH_ACCOUNT+=	tarantool:nginx_tarantool
 GH_PROJECT+=	nginx_upstream_module:nginx_tarantool
-GH_TAGNAME+=	966f2f5:nginx_tarantool
+GH_TAGNAME+=	3599ba0:nginx_tarantool
 CFLAGS+=	-I${LOCALBASE}/include/msgpuck
 CONFIGURE_ARGS+=--add-module=${WRKSRC_nginx_tarantool}
 EXTRA_PATCHES+=	${PATCHDIR}/extra-patch-ngx_http_tarantool-config
@@ -594,11 +608,28 @@ GH_TAGNAME+=	v${NGINX_UPLOADPROGRESS_VER
 CONFIGURE_ARGS+=--add-module=${WRKSRC_uploadprogress}
 .endif
 
+.if !empty(PORT_OPTIONS:MHTTP_UPSTREAM_CHECK)
+# WWW: https://github.com/yaoweibin/nginx_upstream_check_module
+NGINX_UPSTREAM_CHECK_VERSION=	10782ea
+GH_ACCOUNT+=	yaoweibin:upstreamcheck
+GH_PROJECT+=	nginx_upstream_check_module:upstreamcheck
+GH_TAGNAME+=	${NGINX_UPSTREAM_CHECK_VERSION}:upstreamcheck
+CONFIGURE_ARGS+=--add-module=${WRKSRC_upstreamcheck}
+EXTRA_PATCHES+=	${PATCHDIR}/extra-patch-src-http-modules-ngx_http_upstream_hash_module.c \
+		${PATCHDIR}/extra-patch-src-http-modules-ngx_http_upstream_ip_hash_module.c \
+		${PATCHDIR}/extra-patch-src-http-modules-ngx_http_upstream_least_conn_module.c \
+		${PATCHDIR}/extra-patch-src-http-ngx_http_upstream_round_robin.c \
+		${PATCHDIR}/extra-patch-src-http-ngx_http_upstream_round_robin.h
+.endif
+
 .if !empty(PORT_OPTIONS:MHTTP_UPSTREAM_FAIR)
 NGINX_UPSTREAM_FAIR_VERSION=	20090923
 MASTER_SITES+=	LOCAL/osa:upstreamfair
 DISTFILES+=	nginx_upstream_fair-${NGINX_UPSTREAM_FAIR_VERSION}.tar.gz:upstreamfair
 CONFIGURE_ARGS+=--add-module=${WRKDIR}/nginx_upstream_fair-${NGINX_UPSTREAM_FAIR_VERSION}
+.if !empty(PORT_OPTIONS:MHTTP_UPSTREAM_CHECK)
+EXTRA_PATCHES+=	${PATCHDIR}/extra-patch-ngx_http_upstream_fair_module.c
+.endif
 .endif
 
 .if ${PORT_OPTIONS:MHTTP_UPSTREAM_STICKY}
@@ -683,7 +714,7 @@ CONFIGURE_ARGS+=--add-module=${WRKSRC_le
 LIB_DEPENDS+=	libluajit-5.1.so:lang/luajit
 CONFIGURE_ENV+=	"LUAJIT_INC=${LOCALBASE}/include/luajit-2.0"
 CONFIGURE_ENV+=	"LUAJIT_LIB=${LOCALBASE}/lib"
-NGINX_LUA_VERSION=	7410339
+NGINX_LUA_VERSION=	d44f8e0
 GH_ACCOUNT+=	openresty:lua
 GH_PROJECT+=	lua-nginx-module:lua
 GH_TAGNAME+=	${NGINX_LUA_VERSION}:lua
@@ -803,10 +834,10 @@ EXTRA_PATCHES+=	${PATCHDIR}/extra-patch-
 .endif
 
 .if ${PORT_OPTIONS:MSHIBBOLETH}
-GIT_SHIBBOLETH_VERSION=	20150121
+GIT_SHIBBOLETH_VERSION=	4f1119b
 GH_ACCOUNT+=	nginx-shib:shib
 GH_PROJECT+=	nginx-http-shibboleth:shib
-GH_TAGNAME+=	v${GIT_SHIBBOLETH_VERSION}:shib
+GH_TAGNAME+=	${GIT_SHIBBOLETH_VERSION}:shib
 CONFIGURE_ARGS+=--add-module=${WRKSRC_shib}
 .endif
 
@@ -920,7 +951,7 @@ CONFIGURE_ARGS+=--add-module=${WRKSRC_ar
 .endif
 
 .if ${PORT_OPTIONS:MBROTLI}
-NGINX_BROTLI_VERSION=	86998c6
+NGINX_BROTLI_VERSION=	2fc6f12
 LIB_DEPENDS+=	libbrotlidec.so:devel/libbrotli \
 		libbrotlienc.so:devel/libbrotli
 GH_ACCOUNT+=	google:brotli

Modified: branches/2016Q2/www/nginx/distinfo
==============================================================================
--- branches/2016Q2/www/nginx/distinfo	Sun Jun  5 17:44:01 2016	(r416406)
+++ branches/2016Q2/www/nginx/distinfo	Sun Jun  5 17:44:02 2016	(r416407)
@@ -32,14 +32,16 @@ SHA256 (nginx_udplog_module-1.0.0.tar.gz
 SIZE (nginx_udplog_module-1.0.0.tar.gz) = 6284
 SHA256 (giom-nginx_accept_language_module-2f69842_GH0.tar.gz) = 5534ca63cdfc2a7dc4e1cbf9c2d54d3ed3f0e6c86b4a95be48ec0a3f41cc1eb0
 SIZE (giom-nginx_accept_language_module-2f69842_GH0.tar.gz) = 3393
-SHA256 (samizdatco-nginx-http-auth-digest-bd1c86a_GH0.tar.gz) = d3071ca4b70cfd7f437add772a2aa6ab585dafb5d5a2e3f5cc70af74da72acf2
-SIZE (samizdatco-nginx-http-auth-digest-bd1c86a_GH0.tar.gz) = 14458
+SHA256 (atomx-nginx-http-auth-digest-4edfb18_GH0.tar.gz) = 8b831fccda3ce9bdf854a3aefa1e466a8da97ca0a5feb33a28b4f117f517b82e
+SIZE (atomx-nginx-http-auth-digest-4edfb18_GH0.tar.gz) = 16007
 SHA256 (stnoonan-spnego-http-auth-nginx-module-c85a38c_GH0.tar.gz) = b47b23a362aa338c377d6163d15abee6f33ff16bac5f86ee4d9543293fe8c4d1
 SIZE (stnoonan-spnego-http-auth-nginx-module-c85a38c_GH0.tar.gz) = 18120
 SHA256 (kvspb-nginx-auth-ldap-8517bb0_GH0.tar.gz) = a69cf8d5490620d5507d712fa234e137d9404e9c250563f2eb421eafa6209975
 SIZE (kvspb-nginx-auth-ldap-8517bb0_GH0.tar.gz) = 16947
 SHA256 (yaoweibin-nginx_ajp_module-bf6cd93_GH0.tar.gz) = 9e3f78ea73e2d606a95ee64fd3affa4c249f9b342e66b6b11b63061791f28316
 SIZE (yaoweibin-nginx_ajp_module-bf6cd93_GH0.tar.gz) = 109704
+SHA256 (anomalizer-ngx_aws_auth-1e62670_GH0.tar.gz) = db7ceef4ae22cf5bfaf5abae64830dfeef203ca85f9f40f7d1f1d90f277478c0
+SIZE (anomalizer-ngx_aws_auth-1e62670_GH0.tar.gz) = 8260
 SHA256 (nginx-clojure-nginx-clojure-v0.4.4_GH0.tar.gz) = 642ebf4724fa7c3efd5349e60b442ac8671497406834804c903ec548bfdcb691
 SIZE (nginx-clojure-nginx-clojure-v0.4.4_GH0.tar.gz) = 603856
 SHA256 (grahamedgecombe-nginx-ct-f3cad5e_GH0.tar.gz) = 846e148f09ffea2ffc1b09b20c84408e23c170313f967513a85009717227c13a
@@ -60,18 +62,20 @@ SHA256 (nginx-modules-ngx_http_json_stat
 SIZE (nginx-modules-ngx_http_json_status_module-1d2f303_GH0.tar.gz) = 6736
 SHA256 (kr-nginx-notice-3c95966_GH0.tar.gz) = e829fc94178cc8c91fef15a1fc44ee7ac162c13eddc0bba4c9427aaa23386885
 SIZE (kr-nginx-notice-3c95966_GH0.tar.gz) = 3343
-SHA256 (slact-nchan-v0.99.8_GH0.tar.gz) = 3b25cbd7aff9742dac15d64d55f67a4ab83fc52053111ddd3fd0b8f2932682d1
-SIZE (slact-nchan-v0.99.8_GH0.tar.gz) = 344368
+SHA256 (slact-nchan-v0.99.12_GH0.tar.gz) = b761255489c617aa270910f3ba02af1adbd42e299116cdd465c80dda1b2acf07
+SIZE (slact-nchan-v0.99.12_GH0.tar.gz) = 358336
 SHA256 (wandenberg-nginx-push-stream-module-0.5.1_GH0.tar.gz) = a95f31e80120fd7324795b92a0d94c0b43e1265df7fd0f1eba11a337c1e0a626
 SIZE (wandenberg-nginx-push-stream-module-0.5.1_GH0.tar.gz) = 175263
 SHA256 (yaoweibin-ngx_http_substitutions_filter_module-v0.6.4_GH0.tar.gz) = ed4ddbcf0c434f4a1e97b61251a63ace759792764bd5cb79ff20efe348db8db3
 SIZE (yaoweibin-ngx_http_substitutions_filter_module-v0.6.4_GH0.tar.gz) = 92230
-SHA256 (tarantool-nginx_upstream_module-966f2f5_GH0.tar.gz) = 8142475d8ecf0c02d2fc8051364729d842fe06b0b445b416c87c2f796bb42fa7
-SIZE (tarantool-nginx_upstream_module-966f2f5_GH0.tar.gz) = 873343
+SHA256 (tarantool-nginx_upstream_module-3599ba0_GH0.tar.gz) = 9f4c60a742786b3507fb69fb9fb653cec08114399ce0e65a06ea5fb532030713
+SIZE (tarantool-nginx_upstream_module-3599ba0_GH0.tar.gz) = 877305
 SHA256 (vkholodkov-nginx-upload-module-aba1e3f34c_GH0.tar.gz) = 62a2c4388585aec463a1cee30bc84953593a93f341dc1df61b42b452594d2a05
 SIZE (vkholodkov-nginx-upload-module-aba1e3f34c_GH0.tar.gz) = 28296
 SHA256 (masterzen-nginx-upload-progress-module-v0.9.0_GH0.tar.gz) = 93e29b9b437a2e34713de54c2861ea51151624aca09f73f9f44d1caaff01a6b1
 SIZE (masterzen-nginx-upload-progress-module-v0.9.0_GH0.tar.gz) = 16990
+SHA256 (yaoweibin-nginx_upstream_check_module-10782ea_GH0.tar.gz) = 52e6acd8c0264a59c5c948271015a59acd3cbcf91377456b7c8dc6f9feecef4a
+SIZE (yaoweibin-nginx_upstream_check_module-10782ea_GH0.tar.gz) = 128281
 SHA256 (wandenberg-nginx-video-thumbextractor-module-0.7.0_GH0.tar.gz) = 382bb41fa739f471fdab9fbabc5384d8ec7f25b5bb0c45c153f5cc01d428abe2
 SIZE (wandenberg-nginx-video-thumbextractor-module-0.7.0_GH0.tar.gz) = 2709351
 SHA256 (openresty-drizzle-nginx-module-v0.1.9_GH0.tar.gz) = aafb79d87273eec023025333c34d6d0108026a1ce2e09b20a53e8e2d9bf65080
@@ -86,8 +90,8 @@ SHA256 (mongodb-mongo-c-driver-v0.3.1_GH
 SIZE (mongodb-mongo-c-driver-v0.3.1_GH0.tar.gz) = 53024
 SHA256 (arut-nginx-let-module-v0.0.4_GH0.tar.gz) = cbf6fcddc00a7e30289134bdeace12565e000cc7d4efee2d2ebb8799d0b88270
 SIZE (arut-nginx-let-module-v0.0.4_GH0.tar.gz) = 20534
-SHA256 (openresty-lua-nginx-module-7410339_GH0.tar.gz) = 1b78f243ea95efcfd6f5bda43fbe5849bff931b9620d22c75b3de6590e09c684
-SIZE (openresty-lua-nginx-module-7410339_GH0.tar.gz) = 574764
+SHA256 (openresty-lua-nginx-module-d44f8e0_GH0.tar.gz) = e63997f54dc01dcef82598f4423e5433ac46a26606ea9e8b59f631374b326e42
+SIZE (openresty-lua-nginx-module-d44f8e0_GH0.tar.gz) = 575604
 SHA256 (openresty-memc-nginx-module-v0.16_GH0.tar.gz) = 24f3c3270831aed2d157c01ef74cb26eab26b832971fe7b9f42a03dbfac10ce4
 SIZE (openresty-memc-nginx-module-v0.16_GH0.tar.gz) = 38560
 SHA256 (nbs-system-naxsi-0.54_GH0.tar.gz) = 9cc2c09405bc71f78ef26a8b6d70afcea3fccbe8125df70cb0cfc480133daba5
@@ -104,8 +108,8 @@ SHA256 (arut-nginx-rtmp-module-v1.1.7_GH
 SIZE (arut-nginx-rtmp-module-v1.1.7_GH0.tar.gz) = 519735
 SHA256 (openresty-set-misc-nginx-module-6582fb4_GH0.tar.gz) = cc325830477dfcdbb355fc7b19cbc2f4e55c179b3b56fdfe0613b5a7b926235e
 SIZE (openresty-set-misc-nginx-module-6582fb4_GH0.tar.gz) = 35961
-SHA256 (nginx-shib-nginx-http-shibboleth-v20150121_GH0.tar.gz) = e38a19bb4d30e5487c013c4b6b3e3d5b96de82d63b776471cc2c381a5d00374d
-SIZE (nginx-shib-nginx-http-shibboleth-v20150121_GH0.tar.gz) = 10106
+SHA256 (nginx-shib-nginx-http-shibboleth-4f1119b_GH0.tar.gz) = c25f284bc934f59a267d319385a3e11858efef786c84b49a77d09e7f5274bbf1
+SIZE (nginx-shib-nginx-http-shibboleth-4f1119b_GH0.tar.gz) = 16688
 SHA256 (cubicdaiya-ngx_small_light-v0.6.15_GH0.tar.gz) = 9bc9c221287a6db56a4a0eb7ac35a560fc15dfd6dafcb500fdea49a583527716
 SIZE (cubicdaiya-ngx_small_light-v0.6.15_GH0.tar.gz) = 54695
 SHA256 (openresty-srcache-nginx-module-v0.30_GH0.tar.gz) = e34b1ab5f5007661f73819f9c20fd6c2a46ed3e53364e9449b02ef2bd3628633
@@ -118,8 +122,8 @@ SHA256 (openresty-xss-nginx-module-v0.04
 SIZE (openresty-xss-nginx-module-v0.04_GH0.tar.gz) = 10536
 SHA256 (openresty-array-var-nginx-module-v0.03_GH0.tar.gz) = f9892ec9a2e872d8aabeb2234d0d4c66cf85b8dbb2ca5c108a20c3d8c2111189
 SIZE (openresty-array-var-nginx-module-v0.03_GH0.tar.gz) = 9520
-SHA256 (google-ngx_brotli-86998c6_GH0.tar.gz) = 463a583cfbeacdf6d6db5630afaddc9eebeec44301ca68c660cc8fdf4580e5aa
-SIZE (google-ngx_brotli-86998c6_GH0.tar.gz) = 10890
+SHA256 (google-ngx_brotli-2fc6f12_GH0.tar.gz) = f72daeb63db97e4facf99f6917f55f5d33e52f7f18d87c01fac05ec50274054f
+SIZE (google-ngx_brotli-2fc6f12_GH0.tar.gz) = 10960
 SHA256 (calio-form-input-nginx-module-v0.07_GH0.tar.gz) = c0c56cc697a290e98b88d4888bac8828041ef6f3049247d3cd3c63f2808d1e20
 SIZE (calio-form-input-nginx-module-v0.07_GH0.tar.gz) = 10563
 SHA256 (calio-iconv-nginx-module-v0.10_GH0.tar.gz) = 88e326eba7fdf9fd2376b1ba033b48cb0eee45136528cf5430ac9340088ce324

Modified: branches/2016Q2/www/nginx/files/extra-patch-ngx_http_tarantool-config
==============================================================================
--- branches/2016Q2/www/nginx/files/extra-patch-ngx_http_tarantool-config	Sun Jun  5 17:44:01 2016	(r416406)
+++ branches/2016Q2/www/nginx/files/extra-patch-ngx_http_tarantool-config	Sun Jun  5 17:44:02 2016	(r416407)
@@ -1,5 +1,5 @@
---- ../nginx_upstream_module-966f2f5/config.orig	2015-08-20 23:33:02.000000000 +0300
-+++ ../nginx_upstream_module-966f2f5/config	2015-08-23 16:04:59.572045669 +0300
+--- ../nginx_upstream_module-3599ba0/config.orig	2015-08-20 23:33:02.000000000 +0300
++++ ../nginx_upstream_module-3599ba0/config	2015-08-23 16:04:59.572045669 +0300
 @@ -4,7 +4,7 @@
            "
  

Copied: branches/2016Q2/www/nginx/files/extra-patch-ngx_http_upstream_fair_module.c (from r413165, head/www/nginx/files/extra-patch-ngx_http_upstream_fair_module.c)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/2016Q2/www/nginx/files/extra-patch-ngx_http_upstream_fair_module.c	Sun Jun  5 17:44:02 2016	(r416407, copy of r413165, head/www/nginx/files/extra-patch-ngx_http_upstream_fair_module.c)
@@ -0,0 +1,89 @@
+--- ../nginx_upstream_fair-20090923/ngx_http_upstream_fair_module.c.orig	2009-09-24 01:38:16.000000000 +0800
++++ ../nginx_upstream_fair-20090923/ngx_http_upstream_fair_module.c	2016-03-24 13:56:02.990728000 +0800
+@@ -9,6 +9,10 @@
+ #include <ngx_core.h>
+ #include <ngx_http.h>
+ 
++#if (NGX_HTTP_UPSTREAM_CHECK)
++#include "ngx_http_upstream_check_module.h"
++#endif
++
+ typedef struct {
+     ngx_uint_t                          nreq;
+     ngx_uint_t                          total_req;
+@@ -42,6 +46,10 @@
+     ngx_uint_t                          max_fails;
+     time_t                              fail_timeout;
+ 
++#if (NGX_HTTP_UPSTREAM_CHECK)
++    ngx_uint_t                          check_index;
++#endif
++
+     time_t                              accessed;
+     ngx_uint_t                          down:1;
+ 
+@@ -474,6 +482,15 @@
+                 peers->peer[n].fail_timeout = server[i].fail_timeout;
+                 peers->peer[n].down = server[i].down;
+                 peers->peer[n].weight = server[i].down ? 0 : server[i].weight;
++#if (NGX_HTTP_UPSTREAM_CHECK)
++                if (!server[i].down) {
++                    peers->peer[n].check_index =
++                        ngx_http_upstream_check_add_peer(cf, us, &server[i].addrs[j]);
++                }
++                else {
++                    peers->peer[n].check_index = (ngx_uint_t) NGX_ERROR;
++                }
++#endif
+                 n++;
+             }
+         }
+@@ -524,6 +541,15 @@
+                 backup->peer[n].max_fails = server[i].max_fails;
+                 backup->peer[n].fail_timeout = server[i].fail_timeout;
+                 backup->peer[n].down = server[i].down;
++#if (NGX_HTTP_UPSTREAM_CHECK)
++                if (!server[i].down) {
++                    backup->peer[n].check_index =
++                        ngx_http_upstream_check_add_peer(cf, us, &server[i].addrs[j]);
++                }
++                else {
++                    backup->peer[n].check_index = (ngx_uint_t) NGX_ERROR;
++                }
++#endif
+                 n++;
+             }
+         }
+@@ -580,6 +606,9 @@
+         peers->peer[i].weight = 1;
+         peers->peer[i].max_fails = 1;
+         peers->peer[i].fail_timeout = 10;
++#if (NGX_HTTP_UPSTREAM_CHECK)
++        peers->peer[i].check_index = (ngx_uint_t) NGX_ERROR;
++#endif
+     }
+ 
+     us->peer.data = peers;
+@@ -721,6 +750,12 @@

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201606051744.u55Hi2cl001401>