aboutsummaryrefslogtreecommitdiffstats
path: root/www/nginx
diff options
context:
space:
mode:
authorosa <osa@FreeBSD.org>2017-04-26 07:18:09 +0800
committerosa <osa@FreeBSD.org>2017-04-26 07:18:09 +0800
commit5e419a72a12e5739259bd277f40579464f62d49d (patch)
tree84072d67c0ae130907d90250db176210a6b0e2d5 /www/nginx
parent4035f7974481ed5fbf493db2822170318223b51d (diff)
downloadfreebsd-ports-gnome-5e419a72a12e5739259bd277f40579464f62d49d.tar.gz
freebsd-ports-gnome-5e419a72a12e5739259bd277f40579464f62d49d.tar.zst
freebsd-ports-gnome-5e419a72a12e5739259bd277f40579464f62d49d.zip
Upgrade from 1.10.3 to 1.12.0.
ChangeLog: http://nginx.org/en/CHANGES-1.12 Remove IPV6 knob, IPv6 now compiled-in automatically if support is found. Also, remove third-party modules: o) udplog o) statsd Enable third_party mod_zip module back by changing upstream. Upgrade third-party modules: o) lua to 0.10.8 o) upstream_fair to b5be36f (upstream has been changed) o) upload to 72ec037 (upstream has been changed). o) http_auth_krb5 to 0c6ff3f. o) party njs to 0.1.10. Please see this comment in case of the production use of the lua module: https://github.com/openresty/lua-nginx-module/pull/1017#issuecomment-294076002 Patches obtained from: o) https://github.com/openresty/lua-nginx-module/commit/0459a285ca0159d45e73da8bd1164edb5c57cde3 o) https://github.com/SpiderLabs/ModSecurity/pull/1373/commits/d19df159043106a4d6dfd113696900b5b0dae24b
Diffstat (limited to 'www/nginx')
-rw-r--r--www/nginx/Makefile111
-rw-r--r--www/nginx/distinfo34
-rw-r--r--www/nginx/files/extra-patch-ngx_http_drizzle_upstream.c17
-rw-r--r--www/nginx/files/extra-patch-ngx_http_echo_request_info.c43
-rw-r--r--www/nginx/files/extra-patch-ngx_http_lua_common.h15
-rw-r--r--www/nginx/files/extra-patch-ngx_http_lua_headers.c124
-rw-r--r--www/nginx/files/extra-patch-ngx_http_lua_headers.h12
-rw-r--r--www/nginx/files/extra-patch-ngx_http_lua_module.c36
-rw-r--r--www/nginx/files/extra-patch-ngx_http_memc_util.c17
-rw-r--r--www/nginx/files/extra-patch-ngx_http_modsecurity.c18
-rw-r--r--www/nginx/files/extra-patch-ngx_http_redis2_util.c18
-rw-r--r--www/nginx/files/extra-patch-ngx_http_sticky_misc.c17
-rw-r--r--www/nginx/files/extra-patch-ngx_http_udplog_module.c431
-rw-r--r--www/nginx/files/extra-patch-ngx_http_upstream_fair_module.c.n21
-rw-r--r--www/nginx/files/extra-patch-ngx_inet_slab.c29
-rw-r--r--www/nginx/files/extra-patch-ngx_postgres_module.c17
-rw-r--r--www/nginx/files/extra-patch-spnego-http-auth-nginx-module-config15
-rw-r--r--www/nginx/files/extra-patch-src-c-ngx_http_clojure_socket.c11
-rw-r--r--www/nginx/files/extra-patch-src-http-ngx_http_upstream_round_robin.h13
19 files changed, 470 insertions, 529 deletions
diff --git a/www/nginx/Makefile b/www/nginx/Makefile
index 5df1d9d6be11..152a8d36b932 100644
--- a/www/nginx/Makefile
+++ b/www/nginx/Makefile
@@ -2,8 +2,7 @@
# $FreeBSD$
PORTNAME= nginx
-PORTVERSION= 1.10.3
-PORTREVISION= 1
+PORTVERSION= 1.12.0
PORTEPOCH= 2
CATEGORIES= www
MASTER_SITES= http://nginx.org/download/
@@ -27,7 +26,6 @@ OPTIONS_DEFINE= \
DEBUG \
DEBUGLOG \
FILE_AIO \
- IPV6 \
GOOGLE_PERFTOOLS \
HTTP \
HTTP_ADDITION \
@@ -59,6 +57,7 @@ OPTIONS_DEFINE= \
NJS \
STREAM \
STREAM_SSL \
+ STREAM_SSL_PREREAD \
THREADS \
WWW \
AJP \
@@ -122,8 +121,6 @@ OPTIONS_DEFINE= \
SLOWFS_CACHE \
SMALL_LIGHT \
SRCACHE \
- STATSD \
- UDPLOG \
X11 \
XRID_HEADER \
XSS
@@ -132,7 +129,8 @@ OPTIONS_DEFAULT?=DSO 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
+ HTTPV2 MAIL MAIL_SSL STREAM STREAM_SSL STREAM_SSL_PREREAD \
+ THREADS WWW
DSO_DESC= Enable dynamic modules support
DEBUG_DESC= Build with debugging support
@@ -169,6 +167,7 @@ HTTPV2_DESC= Enable HTTP/2 protocol support (SSL req.)
NJS_DESC= Enable http_javascript module
STREAM_DESC= Enable stream module
STREAM_SSL_DESC= Enable stream_ssl module (SSL req.)
+STREAM_SSL_PREREAD_DESC= Enable stream_ssl_preread module (SSL req.)
THREADS_DESC= Enable threads support
WWW_DESC= Enable html sample files
AJP_DESC= 3rd party ajp module
@@ -232,8 +231,6 @@ SHIBBOLETH_DESC= 3rd party shibboleth module
SLOWFS_CACHE_DESC= 3rd party slowfs_cache module
SMALL_LIGHT_DESC= 3rd party small_light module
SRCACHE_DESC= 3rd party srcache module
-STATSD_DESC= 3rd party statsd module
-UDPLOG_DESC= 3rd party udplog (syslog) module
X11_DESC= graphics/ImageMagick[-nox11] dependency
XRID_HEADER_DESC= 3rd party x-rid header module
XSS_DESC= 3rd party xss module
@@ -310,11 +307,6 @@ CONFIGURE_ARGS+=--with-debug
CONFIGURE_ARGS+=--with-file-aio
.endif
-.if ${PORT_OPTIONS:MIPV6}
-CONFIGURE_ARGS+=--with-ipv6
-CATEGORIES+= ipv6
-.endif
-
.if ${PORT_OPTIONS:MGOOGLE_PERFTOOLS}
LIB_DEPENDS+= libprofiler.so:devel/google-perftools
CONFIGURE_ARGS+=--with-google_perftools_module
@@ -341,6 +333,7 @@ NGINX_ACCESSKEY_VERSION= 2.0.3
MASTER_SITES+= LOCAL/osa:accesskey
DISTFILES+= nginx-accesskey-${NGINX_ACCESSKEY_VERSION}.tar.gz:accesskey
CONFIGURE_ARGS+=--add-module=${WRKDIR}/nginx-accesskey-${NGINX_ACCESSKEY_VERSION}
+IGNORE= ACCESSKEY: a patch requires
.endif
.if ${PORT_OPTIONS:MHTTP_ADDITION}
@@ -356,14 +349,16 @@ CONFIGURE_ARGS+=--add-module=${WRKSRC_auth_digest}
.endif
.if ${PORT_OPTIONS:MHTTP_AUTH_KRB5}
-GIT_HTTP_AUTH_KRB5_VERSION= c85a38c
+GIT_HTTP_AUTH_KRB5_VERSION= 0c6ff3f
GH_ACCOUNT+= stnoonan:auth_krb5
GH_PROJECT+= spnego-http-auth-nginx-module:auth_krb5
GH_TAGNAME+= ${GIT_HTTP_AUTH_KRB5_VERSION}:auth_krb5
CONFIGURE_ARGS+=--add-module=${WRKSRC_auth_krb5}
-EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-spnego-http-auth-nginx-module-config
-# TODO: Provide optional dependence on Kerberos implementations from ports
-USES+= gssapi:base,flags
+#EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-spnego-http-auth-nginx-module-config
+#OPTIONS_RADIO+= GSSAPI
+#OPTIONS_RADIO_GSSAPI+= GSSAPI_HEIMDAL GSSAPI_MIT
+#GSSAPI_HEIMDAL_USES= gssapi:heimdal,flags
+#GSSAPI_MIT_USES= gssapi:mit
.endif
.if ${PORT_OPTIONS:MHTTP_AUTH_LDAP}
@@ -432,6 +427,7 @@ GH_PROJECT+= nginx-clojure:clojure
GH_TAGNAME+= v${NGINX_CLOJURE_VERSION}:clojure
CONFIGURE_ENV+= "JNI_INCS=-I${LOCALBASE}/openjdk8/include -I${LOCALBASE}/openjdk8/include/freebsd"
CONFIGURE_ARGS+=--add-module=${WRKSRC_clojure}/src/c
+EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-src-c-ngx_http_clojure_socket.c
.endif
.if ${PORT_OPTIONS:MCT}
@@ -461,6 +457,7 @@ CONFIGURE_ARGS+=--add-dynamic-module=${WRKSRC_echo}
.else
CONFIGURE_ARGS+=--add-module=${WRKSRC_echo}
.endif
+EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-ngx_http_echo_request_info.c
.endif
.if ${PORT_OPTIONS:MFASTDFS}
@@ -709,8 +706,8 @@ CONFIGURE_ARGS+=--with-http_sub_module
.endif
.if ${PORT_OPTIONS:MHTTP_UPLOAD}
-GIT_UPLOAD_VERSION= aba1e3f34c
-GH_ACCOUNT+= vkholodkov:upload
+GIT_UPLOAD_VERSION= 72ec037
+GH_ACCOUNT+= Austinb:upload
GH_PROJECT+= nginx-upload-module:upload
GH_TAGNAME+= ${GIT_UPLOAD_VERSION}:upload
CONFIGURE_ARGS+=--add-module=${WRKSRC_upload}
@@ -739,13 +736,14 @@ EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-src-http-modules-ngx_http_upstream_hash_
.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
+NGINX_UPSTREAM_FAIR_VERSION= b5be36f
+GH_ACCOUNT+= cryptofuture:upstreamfair
+GH_PROJECT+= nginx-upstream-fair:upstreamfair
+GH_TAGNAME+= ${NGINX_UPSTREAM_FAIR_VERSION}:upstreamfair
+CONFIGURE_ARGS+=--add-module=${WRKSRC_upstreamfair}
+#.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}
@@ -754,6 +752,7 @@ NGINX_UPSTREAM_STICKY_VERSION= 08a395c66e42
MASTER_SITES+= https://bitbucket.org/nginx-goodies/nginx-sticky-module-ng/get/:upstreamsticky
DISTFILES+= ${NGINX_UPSTREAM_STICKY_VERSION}.tar.gz:upstreamsticky
CONFIGURE_ARGS+=--add-module=${WRKDIR}/nginx-goodies-nginx-sticky-module-ng-${NGINX_UPSTREAM_STICKY_VERSION}/
+EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-ngx_http_sticky_misc.c
.endif
.if ${PORT_OPTIONS:MHTTP_VIDEO_THUMBEXTRACTOR}
@@ -779,8 +778,8 @@ CONFIGURE_ARGS+=--with-http_xslt_module
.endif
.if ${PORT_OPTIONS:MHTTP_ZIP}
-NGINX_ZIP_VERSION= ca0b345
-GH_ACCOUNT+= evanmiller:mod_zip
+NGINX_ZIP_VERSION= 74ef235
+GH_ACCOUNT+= anthonyryan1:mod_zip
GH_PROJECT+= mod_zip:mod_zip
GH_TAGNAME+= ${NGINX_ZIP_VERSION}:mod_zip
CONFIGURE_ARGS+=--add-module=${WRKDIR}/mod_zip-${NGINX_ZIP_VERSION}
@@ -795,7 +794,8 @@ GH_ACCOUNT+= openresty:drizzle
GH_PROJECT+= drizzle-nginx-module:drizzle
GH_TAGNAME+= v${NGINX_DRIZZLE_VERSION}:drizzle
CONFIGURE_ARGS+=--add-module=${WRKSRC_drizzle}
-EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-openresty-drizzle-nginx-module-config
+EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-openresty-drizzle-nginx-module-config \
+ ${PATCHDIR}/extra-patch-ngx_http_drizzle_upstream.c
.endif
.if ${PORT_OPTIONS:MDYNAMIC_UPSTREAM}
@@ -808,6 +808,7 @@ CONFIGURE_ARGS+=--add-dynamic-module=${WRKSRC_dyn_upstream}
.else
CONFIGURE_ARGS+=--add-module=${WRKSRC_dyn_upstream}
.endif
+EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-ngx_inet_slab.c
.endif
.if ${PORT_OPTIONS:MARRAYVAR} || ${PORT_OPTIONS:MENCRYPTSESSION} || ${PORT_OPTIONS:MFORMINPUT} || ${PORT_OPTIONS:MICONV} || ${PORT_OPTIONS:MLUA} || ${PORT_OPTIONS:MSET_MISC}
@@ -847,7 +848,7 @@ CONFIGURE_ARGS+=--add-module=${WRKSRC_let}
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= 0.10.7
+NGINX_LUA_VERSION= 0.10.8
GH_ACCOUNT+= openresty:lua
GH_PROJECT+= lua-nginx-module:lua
GH_TAGNAME+= v${NGINX_LUA_VERSION}:lua
@@ -856,6 +857,10 @@ CONFIGURE_ARGS+=--add-dynamic-module=${WRKSRC_lua}
.else
CONFIGURE_ARGS+=--add-module=${WRKSRC_lua}
.endif
+EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-ngx_http_lua_common.h \
+ ${PATCHDIR}/extra-patch-ngx_http_lua_headers.c \
+ ${PATCHDIR}/extra-patch-ngx_http_lua_headers.h \
+ ${PATCHDIR}/extra-patch-ngx_http_lua_module.c
.endif
.if ${PORT_OPTIONS:MMEMC}
@@ -864,6 +869,7 @@ GH_ACCOUNT+= openresty:memc
GH_PROJECT+= memc-nginx-module:memc
GH_TAGNAME+= v${NGINX_MEMC_VERSION}:memc
CONFIGURE_ARGS+=--add-module=${WRKSRC_memc}
+EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-ngx_http_memc_util.c
.endif
.if ${PORT_OPTIONS:MMODSECURITY}
@@ -879,7 +885,8 @@ USES+= pkgconfig shebangfix
MASTER_SITES+= http://www.modsecurity.org/tarball/${NGINX_MODSECURITY_VERSION:S/RC/rc/}/:modsecurity
DISTFILES+= modsecurity-${NGINX_MODSECURITY_VERSION}.tar.gz:modsecurity
CONFIGURE_ARGS+=--add-module=${WRKDIR}/modsecurity-${NGINX_MODSECURITY_VERSION}/nginx/modsecurity
-EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-nginx-modsecurity-configure
+EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-nginx-modsecurity-configure \
+ ${PATCHDIR}/extra-patch-ngx_http_modsecurity.c
.endif
.if ${PORT_OPTIONS:MNAXSI}
@@ -922,7 +929,8 @@ GH_ACCOUNT+= FRiCKLE:postgres
GH_PROJECT+= ngx_postgres:postgres
GH_TAGNAME+= ${NGINX_POSTGRES_VERSION}:postgres
CONFIGURE_ARGS+=--add-module=${WRKSRC_postgres}
-EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-ngx_postgres-config
+EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-ngx_postgres-config \
+ ${PATCHDIR}/extra-patch-ngx_postgres_module.c
.endif
.if ${PORT_OPTIONS:MRDS_CSV}
@@ -947,6 +955,7 @@ GH_ACCOUNT+= openresty:redis2
GH_PROJECT+= redis2-nginx-module:redis2
GH_TAGNAME+= v${NGINX_REDIS2_VERSION}:redis2
CONFIGURE_ARGS+=--add-module=${WRKSRC_redis2}
+EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-ngx_http_redis2_util.c
.endif
.if ${PORT_OPTIONS:MRTMP}
@@ -1016,22 +1025,6 @@ GH_TAGNAME+= v${NGINX_SRCACHE_VERSION}:srcache
CONFIGURE_ARGS+=--add-module=${WRKSRC_srcache}
.endif
-.if ${PORT_OPTIONS:MSTATSD}
-NGINX_STATSD_VERSION= b756a12
-GH_ACCOUNT+= zebrafishlabs:statsd
-GH_PROJECT+= nginx-statsd:statsd
-GH_TAGNAME+= ${NGINX_STATSD_VERSION}:statsd
-CONFIGURE_ARGS+=--add-module=${WRKSRC_statsd}
-.endif
-
-.if ${PORT_OPTIONS:MUDPLOG}
-NGINX_UDPLOG_VERSION= 1.0.0
-MASTER_SITES+= http://www.grid.net.ru/nginx/download/:udplog
-DISTFILES+= nginx_udplog_module-${NGINX_UDPLOG_VERSION}.tar.gz:udplog
-CONFIGURE_ARGS+=--add-module=${WRKDIR}/nginx_udplog_module-${NGINX_UDPLOG_VERSION}
-EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-ngx_http_udplog_module.c
-.endif
-
.if ${PORT_OPTIONS:MXRID_HEADER}
GIT_XRID_VERSION= 0daa3cc
GH_ACCOUNT+= gabor:xrid
@@ -1057,7 +1050,7 @@ CONFIGURE_ARGS+=--with-http_v2_module
.if ${PORT_OPTIONS:MNJS}
GH_ACCOUNT+= nginx:njs
GH_PROJECT+= njs:njs
-GH_TAGNAME+= f7d2d6f:njs
+GH_TAGNAME+= 753ebe6:njs
.if !empty(PORT_OPTIONS:MDSO)
CONFIGURE_ARGS+=--add-dynamic-module=${WRKSRC_njs}/nginx
.else
@@ -1075,6 +1068,9 @@ CONFIGURE_ARGS+=--with-stream
NGINX_OPENSSL= yes
USE_HTTP_SSL= yes
CONFIGURE_ARGS+=--with-stream_ssl_module
+.if ${PORT_OPTIONS:MSTREAM_SSL_PREREAD}
+CONFIGURE_ARGS+=--with-stream_ssl_preread_module
+.endif
.endif
.endif
@@ -1166,9 +1162,6 @@ GROUPS?=${WWWGRP}
.if defined(NGINX_OPENSSL)
USES+= ssl
-.if ${SSL_DEFAULT:Mopenssl-devel}
-BROKEN= Does not build with openssl-devel
-.endif
.endif
pre-everything::
@@ -1253,20 +1246,6 @@ post-patch:
's!%%PREFIX%%!${LOCALBASE}!g' \
${WRKDIR}/nginx-sflow-module-${NGINX_SFLOW_VERSION}/ngx_http_sflow_config.h
.endif
-.if ${PORT_OPTIONS:MSTATSD}
- @${REINPLACE_CMD} \
- 's!ngx_udp_connection_t!ngx_resolver_connection_t!g; \
- s!uc->connection!uc->udp!g; \
- s!e->udp_connection->connection!e->udp_connection->udp!g' \
- ${WRKSRC_statsd}/ngx_http_statsd.c
-.endif
-.if ${PORT_OPTIONS:MUDPLOG}
- @${REINPLACE_CMD} \
- 's!ngx_udp_connection_t!ngx_resolver_connection_t!g; \
- s!uc->connection!uc->udp!g; \
- s!e->udp_connection->connection!e->udp_connection->udp!g' \
- ${WRKDIR}/nginx_udplog_module-${NGINX_UDPLOG_VERSION}/ngx_http_udplog_module.c
-.endif
.if ${PORT_OPTIONS:MICONV}
@${REINPLACE_CMD} \
's!%%PREFIX%%!${LOCALBASE}!g' \
diff --git a/www/nginx/distinfo b/www/nginx/distinfo
index 057ce29c060d..5b2952cb2863 100644
--- a/www/nginx/distinfo
+++ b/www/nginx/distinfo
@@ -1,6 +1,6 @@
-TIMESTAMP = 1487041847
-SHA256 (nginx-1.10.3.tar.gz) = 75020f1364cac459cb733c4e1caed2d00376e40ea05588fb8793076a4c69dd90
-SIZE (nginx-1.10.3.tar.gz) = 911509
+TIMESTAMP = 1492353399
+SHA256 (nginx-1.12.0.tar.gz) = b4222e26fdb620a8d3c3a3a8b955e08b713672e1bc5198d1e4f462308a795b30
+SIZE (nginx-1.12.0.tar.gz) = 980831
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
@@ -15,8 +15,6 @@ SHA256 (ngx_http_redis-0.3.8.tar.gz) = 95d0ed7be40da2efc88883d72e52e5e272d2c3446
SIZE (ngx_http_redis-0.3.8.tar.gz) = 12342
SHA256 (ngx_http_response-0.3.tar.gz) = 0835584029f053051c624adbe33a826ab0205c9d85a02af6019e6b57607e9045
SIZE (ngx_http_response-0.3.tar.gz) = 2244
-SHA256 (nginx_upstream_fair-20090923.tar.gz) = ec9ed7f856263e17faadee3dc7209932364ded4e546b829841c2454aa432450b
-SIZE (nginx_upstream_fair-20090923.tar.gz) = 10024
SHA256 (08a395c66e42.tar.gz) = 53e440737ed1aff1f09fae150219a45f16add0c8d6e84546cb7d80f73ebffd90
SIZE (08a395c66e42.tar.gz) = 120603
SHA256 (modsecurity-2.9.1.tar.gz) = 958cc5a7a7430f93fac0fd6f8b9aa92fc1801efce0cda797d6029d44080a9b24
@@ -25,14 +23,12 @@ SHA256 (passenger-5.1.2.tar.gz) = 7fb03a54650ef5e508895c9e45bc2d8151f6c4811ea679
SIZE (passenger-5.1.2.tar.gz) = 5646103
SHA256 (ngx_slowfs_cache-1.10.tar.gz) = 1e81453942e5b0877de1f1f06c56ae82918ea9818255cb935bcb673c95a758a1
SIZE (ngx_slowfs_cache-1.10.tar.gz) = 11809
-SHA256 (nginx_udplog_module-1.0.0.tar.gz) = e0c0bfa524c3a675ad6c08b916d08e57ef45f9818cb8a0d848c2c83785c6e659
-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 (atomx-nginx-http-auth-digest-cc61b4a_GH0.tar.gz) = e68b34e03516a4ab43006eb4c481d6bc5e813e0d40876359c606a26c5c68ccf6
SIZE (atomx-nginx-http-auth-digest-cc61b4a_GH0.tar.gz) = 16060
-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 (stnoonan-spnego-http-auth-nginx-module-0c6ff3f_GH0.tar.gz) = 3d3fed1e19a532cdd2a37726953f2b2d4e20891a44119ff6075a6b5891324d2d
+SIZE (stnoonan-spnego-http-auth-nginx-module-0c6ff3f_GH0.tar.gz) = 18212
SHA256 (kvspb-nginx-auth-ldap-dbcef31_GH0.tar.gz) = 0ec4f099e50cc12a6319e37700e71540498d354831d1f09e113ee046ee0bb7b2
SIZE (kvspb-nginx-auth-ldap-dbcef31_GH0.tar.gz) = 17001
SHA256 (yaoweibin-nginx_ajp_module-bf6cd93_GH0.tar.gz) = 9e3f78ea73e2d606a95ee64fd3affa4c249f9b342e66b6b11b63061791f28316
@@ -71,16 +67,18 @@ SHA256 (yaoweibin-ngx_http_substitutions_filter_module-v0.6.4_GH0.tar.gz) = ed4d
SIZE (yaoweibin-ngx_http_substitutions_filter_module-v0.6.4_GH0.tar.gz) = 92230
SHA256 (tarantool-nginx_upstream_module-1278ee5_GH0.tar.gz) = 34d51afcd464582e6011a5d3abe6829c5690ddb9b50c993dfdafb4c725a4803a
SIZE (tarantool-nginx_upstream_module-1278ee5_GH0.tar.gz) = 48378
-SHA256 (vkholodkov-nginx-upload-module-aba1e3f34c_GH0.tar.gz) = 62a2c4388585aec463a1cee30bc84953593a93f341dc1df61b42b452594d2a05
-SIZE (vkholodkov-nginx-upload-module-aba1e3f34c_GH0.tar.gz) = 28296
+SHA256 (Austinb-nginx-upload-module-72ec037_GH0.tar.gz) = c6d4e38ad0712c898cc53721f492f8f73acf2753cc0a0769fa34d4d6ba4e8efd
+SIZE (Austinb-nginx-upload-module-72ec037_GH0.tar.gz) = 28303
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 (cryptofuture-nginx-upstream-fair-b5be36f_GH0.tar.gz) = e765afcaab6cd1601e914039a8d00ab18eb6fe01180c58e0e4e098bc5b4d8233
+SIZE (cryptofuture-nginx-upstream-fair-b5be36f_GH0.tar.gz) = 10174
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 (evanmiller-mod_zip-ca0b345_GH0.tar.gz) = babab586ebde83d3cf128eabdc3a66f922db740a43c943ffd9cd8b055acf3a5b
-SIZE (evanmiller-mod_zip-ca0b345_GH0.tar.gz) = 26035
+SHA256 (anthonyryan1-mod_zip-74ef235_GH0.tar.gz) = 0d780e6fef91814fbaa577c9f7cfb7b78f6898e50c34d63f3c5d101eb45afd44
+SIZE (anthonyryan1-mod_zip-74ef235_GH0.tar.gz) = 26125
SHA256 (openresty-drizzle-nginx-module-v0.1.9_GH0.tar.gz) = aafb79d87273eec023025333c34d6d0108026a1ce2e09b20a53e8e2d9bf65080
SIZE (openresty-drizzle-nginx-module-v0.1.9_GH0.tar.gz) = 59024
SHA256 (cubicdaiya-ngx_dynamic_upstream-v0.1.3_GH0.tar.gz) = bf60cf196c86193376d11f8c7a3826994b24a48bb36943bab8a25af6e776af3b
@@ -95,8 +93,8 @@ SHA256 (mongodb-mongo-c-driver-v0.3.1_GH0.tar.gz) = 552c54aff81c4701ace4eb1ce20c
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-v0.10.7_GH0.tar.gz) = c21c8937dcdd6fc2b6a955f929e3f4d1388610f47180e60126e6dcab06786f77
-SIZE (openresty-lua-nginx-module-v0.10.7_GH0.tar.gz) = 605171
+SHA256 (openresty-lua-nginx-module-v0.10.8_GH0.tar.gz) = d67449c71051b3cc2d6dd60df0ae0d21fca08aa19c9b30c5b95ee21ff38ef8dd
+SIZE (openresty-lua-nginx-module-v0.10.8_GH0.tar.gz) = 606643
SHA256 (openresty-memc-nginx-module-v0.17_GH0.tar.gz) = 25cbe3ff4931283a681260607bc91ae4a922075345d5770b293c6cd7f1e3bdcc
SIZE (openresty-memc-nginx-module-v0.17_GH0.tar.gz) = 36369
SHA256 (nbs-system-naxsi-0.54_GH0.tar.gz) = 9cc2c09405bc71f78ef26a8b6d70afcea3fccbe8125df70cb0cfc480133daba5
@@ -121,14 +119,12 @@ SHA256 (cubicdaiya-ngx_small_light-v0.8.0_GH0.tar.gz) = 8f513d6d3df32c3b05327d40
SIZE (cubicdaiya-ngx_small_light-v0.8.0_GH0.tar.gz) = 55918
SHA256 (openresty-srcache-nginx-module-v0.30_GH0.tar.gz) = e34b1ab5f5007661f73819f9c20fd6c2a46ed3e53364e9449b02ef2bd3628633
SIZE (openresty-srcache-nginx-module-v0.30_GH0.tar.gz) = 58777
-SHA256 (zebrafishlabs-nginx-statsd-b756a12_GH0.tar.gz) = 4c5886edb1fbeb0b9a83c879b4be4b15a620627a18978aef636da3feafb284fe
-SIZE (zebrafishlabs-nginx-statsd-b756a12_GH0.tar.gz) = 6636
SHA256 (gabor-nginx-x-rid-header-0daa3cc_GH0.tar.gz) = de784142d867a35ecc5443fa347c2903af0935669cdf2eaa9274f5253aac2267
SIZE (gabor-nginx-x-rid-header-0daa3cc_GH0.tar.gz) = 2711
SHA256 (openresty-xss-nginx-module-v0.05_GH0.tar.gz) = 958bd8de773601d8d3138501cc4be0420f1c818a3987a70cc9c0023371e432cf
SIZE (openresty-xss-nginx-module-v0.05_GH0.tar.gz) = 11477
-SHA256 (nginx-njs-f7d2d6f_GH0.tar.gz) = 67291a3ae4b98f17335f12951984bc9b1bf4f6367e4beff40638cd832d2fb281
-SIZE (nginx-njs-f7d2d6f_GH0.tar.gz) = 167815
+SHA256 (nginx-njs-753ebe6_GH0.tar.gz) = 43fc7a307ee98b9c55283374b36f1f4576cbf529a4101176cb94ab73f3110f67
+SIZE (nginx-njs-753ebe6_GH0.tar.gz) = 191124
SHA256 (openresty-array-var-nginx-module-v0.05_GH0.tar.gz) = c949d4be6f3442c8e2937046448dc8d8def25c0e0fa6f4e805144cea45eabe80
SIZE (openresty-array-var-nginx-module-v0.05_GH0.tar.gz) = 11280
SHA256 (google-ngx_brotli-ada972b_GH0.tar.gz) = d3d0e22a2629cd017280e05bd3bf05aa7b5c820ebe8c79932ce161243911e776
diff --git a/www/nginx/files/extra-patch-ngx_http_drizzle_upstream.c b/www/nginx/files/extra-patch-ngx_http_drizzle_upstream.c
new file mode 100644
index 000000000000..614613c9ec8a
--- /dev/null
+++ b/www/nginx/files/extra-patch-ngx_http_drizzle_upstream.c
@@ -0,0 +1,17 @@
+--- ../drizzle-nginx-module-0.1.9/src/ngx_http_drizzle_upstream.c.orig 2016-11-20 15:32:37.264746000 -0500
++++ ../drizzle-nginx-module-0.1.9/src/ngx_http_drizzle_upstream.c 2016-11-20 15:33:20.909836000 -0500
+@@ -1027,12 +1027,14 @@
+ continue;
+ }
+
++#if (nginx_version < 1011006)
+ if (uscfp[i]->default_port && url->default_port
+ && uscfp[i]->default_port != url->default_port)
+ {
+ dd("upstream_add: default_port not match");
+ continue;
+ }
++#endif
+
+ return uscfp[i];
+ }
diff --git a/www/nginx/files/extra-patch-ngx_http_echo_request_info.c b/www/nginx/files/extra-patch-ngx_http_echo_request_info.c
new file mode 100644
index 000000000000..87b39d08a5db
--- /dev/null
+++ b/www/nginx/files/extra-patch-ngx_http_echo_request_info.c
@@ -0,0 +1,43 @@
+--- ../echo-nginx-module-46334b3/src/ngx_http_echo_request_info.c.orig 2017-04-15 10:03:29.616243000 -0400
++++ ../echo-nginx-module-46334b3/src/ngx_http_echo_request_info.c 2017-04-15 10:07:41.329695000 -0400
+@@ -179,6 +179,9 @@
+ ngx_int_t i, j;
+ ngx_buf_t *b, *first = NULL;
+ unsigned found;
++#if defined(nginx_version) && nginx_version >= 1011011
++ ngx_chain_t *cl;
++#endif
+ ngx_connection_t *c;
+ ngx_http_request_t *mr;
+ ngx_http_connection_t *hc;
+@@ -215,8 +218,15 @@
+
+ if (hc->nbusy) {
+ b = NULL;
++
++#if defined(nginx_version) && nginx_version >= 1011011
++ for (cl = hc->busy; cl; /* void */) {
++ b = cl->buf;
++ cl = cl->next;
++#else
+ for (i = 0; i < hc->nbusy; i++) {
+ b = hc->busy[i];
++#endif
+
+ if (first == NULL) {
+ if (mr->request_line.data >= b->pos
+@@ -280,8 +290,14 @@
+ }
+
+ if (hc->nbusy) {
++#if defined(nginx_version) && nginx_version >= 1011011
++ for (cl = hc->busy; cl; /* void */) {
++ b = cl->buf;
++ cl = cl->next;
++#else
+ for (i = 0; i < hc->nbusy; i++) {
+ b = hc->busy[i];
++#endif
+
+ if (!found) {
+ if (b != first) {
diff --git a/www/nginx/files/extra-patch-ngx_http_lua_common.h b/www/nginx/files/extra-patch-ngx_http_lua_common.h
new file mode 100644
index 000000000000..24d7960c2bb2
--- /dev/null
+++ b/www/nginx/files/extra-patch-ngx_http_lua_common.h
@@ -0,0 +1,15 @@
+--- ../lua-nginx-module-0.10.8/src/ngx_http_lua_common.h.orig 2017-04-15 10:55:20.591680000 -0400
++++ ../lua-nginx-module-0.10.8/src/ngx_http_lua_common.h 2017-04-15 10:55:50.449108000 -0400
+@@ -199,6 +199,12 @@
+ of reqeusts */
+ ngx_uint_t malloc_trim_req_count;
+
++#if nginx_version >= 1011011
++ /* the following 2 fields are only used by ngx.req.raw_headers() for now */
++ ngx_buf_t **busy_buf_ptrs;
++ ngx_int_t busy_buf_ptr_count;
++#endif
++
+ unsigned requires_header_filter:1;
+ unsigned requires_body_filter:1;
+ unsigned requires_capture_filter:1;
diff --git a/www/nginx/files/extra-patch-ngx_http_lua_headers.c b/www/nginx/files/extra-patch-ngx_http_lua_headers.c
new file mode 100644
index 000000000000..d21a6c159db5
--- /dev/null
+++ b/www/nginx/files/extra-patch-ngx_http_lua_headers.c
@@ -0,0 +1,124 @@
+--- ../lua-nginx-module-0.10.8/src/ngx_http_lua_headers.c.orig 2017-04-15 10:57:48.875770000 -0400
++++ ../lua-nginx-module-0.10.8/src/ngx_http_lua_headers.c 2017-04-15 11:02:00.492564000 -0400
+@@ -26,6 +26,9 @@
+ static int ngx_http_lua_ngx_req_header_clear(lua_State *L);
+ static int ngx_http_lua_ngx_req_header_set(lua_State *L);
+ static int ngx_http_lua_ngx_resp_get_headers(lua_State *L);
++#if nginx_version >= 1011011
++void ngx_http_lua_ngx_raw_header_cleanup(void *data);
++#endif
+
+
+ static int
+@@ -77,6 +80,11 @@
+ size_t size;
+ ngx_buf_t *b, *first = NULL;
+ ngx_int_t i, j;
++#if nginx_version >= 1011011
++ ngx_buf_t **bb;
++ ngx_chain_t *cl;
++ ngx_http_lua_main_conf_t *lmcf;
++#endif
+ ngx_connection_t *c;
+ ngx_http_request_t *r, *mr;
+ ngx_http_connection_t *hc;
+@@ -93,6 +101,10 @@
+ return luaL_error(L, "no request object found");
+ }
+
++#if nginx_version >= 1011011
++ lmcf = ngx_http_get_module_main_conf(r, ngx_http_lua_module);
++#endif
++
+ ngx_http_lua_check_fake_request(L, r);
+
+ mr = r->main;
+@@ -109,8 +121,13 @@
+ dd("hc->nbusy: %d", (int) hc->nbusy);
+
+ if (hc->nbusy) {
++#if nginx_version >= 1011011
++ dd("hc->busy: %p %p %p %p", hc->busy->buf->start, hc->busy->buf->pos,
++ hc->busy->buf->last, hc->busy->buf->end);
++#else
+ dd("hc->busy: %p %p %p %p", hc->busy[0]->start, hc->busy[0]->pos,
+ hc->busy[0]->last, hc->busy[0]->end);
++#endif
+ }
+
+ dd("request line: %p %p", mr->request_line.data,
+@@ -146,9 +163,37 @@
+ dd("size: %d", (int) size);
+
+ if (hc->nbusy) {
++#if nginx_version >= 1011011
++ if (hc->nbusy > lmcf->busy_buf_ptr_count) {
++ if (lmcf->busy_buf_ptrs) {
++ ngx_free(lmcf->busy_buf_ptrs);
++ }
++
++ lmcf->busy_buf_ptrs = ngx_alloc(hc->nbusy * sizeof(ngx_buf_t *),
++ r->connection->log);
++
++ if (lmcf->busy_buf_ptrs == NULL) {
++ return luaL_error(L, "no memory");
++ }
++
++ lmcf->busy_buf_ptr_count = hc->nbusy;
++ }
++
++ bb = lmcf->busy_buf_ptrs;
++ for (cl = hc->busy; cl; cl = cl->next) {
++ *bb++ = cl->buf;
++ }
++#endif
+ b = NULL;
++
++#if nginx_version >= 1011011
++ bb = lmcf->busy_buf_ptrs;
++ for (i = hc->nbusy; i > 0; i--) {
++ b = bb[i - 1];
++#else
+ for (i = 0; i < hc->nbusy; i++) {
+ b = hc->busy[i];
++#endif
+
+ dd("busy buf: %d: [%.*s]", (int) i, (int) (b->pos - b->start),
+ b->start);
+@@ -223,8 +268,15 @@
+ }
+
+ if (hc->nbusy) {
++
++#if nginx_version >= 1011011
++ bb = lmcf->busy_buf_ptrs;
++ for (i = hc->nbusy - 1; i >= 0; i--) {
++ b = bb[i];
++#else
+ for (i = 0; i < hc->nbusy; i++) {
+ b = hc->busy[i];
++#endif
+
+ if (!found) {
+ if (b != first) {
+@@ -1431,4 +1483,20 @@
+ #endif /* NGX_LUA_NO_FFI_API */
+
+
++#if nginx_version >= 1011011
++void
++ngx_http_lua_ngx_raw_header_cleanup(void *data)
++{
++ ngx_http_lua_main_conf_t *lmcf;
++
++ lmcf = (ngx_http_lua_main_conf_t *) data;
++
++ if (lmcf->busy_buf_ptrs) {
++ ngx_free(lmcf->busy_buf_ptrs);
++ lmcf->busy_buf_ptrs = NULL;
++ }
++}
++#endif
++
++
+ /* vi:set ft=c ts=4 sw=4 et fdm=marker: */
diff --git a/www/nginx/files/extra-patch-ngx_http_lua_headers.h b/www/nginx/files/extra-patch-ngx_http_lua_headers.h
new file mode 100644
index 000000000000..6b71b075ec55
--- /dev/null
+++ b/www/nginx/files/extra-patch-ngx_http_lua_headers.h
@@ -0,0 +1,12 @@
+--- ../lua-nginx-module-0.10.8/src/ngx_http_lua_headers.h.orig 2017-04-15 11:05:40.649209000 -0400
++++ ../lua-nginx-module-0.10.8/src/ngx_http_lua_headers.h 2017-04-15 11:06:01.658936000 -0400
+@@ -15,6 +15,9 @@
+ void ngx_http_lua_inject_resp_header_api(lua_State *L);
+ void ngx_http_lua_inject_req_header_api(lua_State *L);
+ void ngx_http_lua_create_headers_metatable(ngx_log_t *log, lua_State *L);
++#if nginx_version >= 1011011
++void ngx_http_lua_ngx_raw_header_cleanup(void *data);
++#endif
+
+
+ #endif /* _NGX_HTTP_LUA_HEADERS_H_INCLUDED_ */
diff --git a/www/nginx/files/extra-patch-ngx_http_lua_module.c b/www/nginx/files/extra-patch-ngx_http_lua_module.c
new file mode 100644
index 000000000000..ca35511d24e3
--- /dev/null
+++ b/www/nginx/files/extra-patch-ngx_http_lua_module.c
@@ -0,0 +1,36 @@
+--- ../lua-nginx-module-0.10.8/src/ngx_http_lua_module.c.orig 2017-04-15 11:07:10.366543000 -0400
++++ ../lua-nginx-module-0.10.8/src/ngx_http_lua_module.c 2017-04-15 11:08:25.640520000 -0400
+@@ -28,6 +28,7 @@
+ #include "ngx_http_lua_ssl_certby.h"
+ #include "ngx_http_lua_ssl_session_storeby.h"
+ #include "ngx_http_lua_ssl_session_fetchby.h"
++#include "ngx_http_lua_headers.h"
+
+
+ static void *ngx_http_lua_create_main_conf(ngx_conf_t *cf);
+@@ -624,7 +625,7 @@
+ volatile ngx_cycle_t *saved_cycle;
+ ngx_http_core_main_conf_t *cmcf;
+ ngx_http_lua_main_conf_t *lmcf;
+-#ifndef NGX_LUA_NO_FFI_API
++#if !defined(NGX_LUA_NO_FFI_API) || nginx_version >= 1011011
+ ngx_pool_cleanup_t *cln;
+ #endif
+
+@@ -716,6 +717,16 @@
+ cln->handler = ngx_http_lua_sema_mm_cleanup;
+ #endif
+
++#if nginx_version >= 1011011
++ cln = ngx_pool_cleanup_add(cf->pool, 0);
++ if (cln == NULL) {
++ return NGX_ERROR;
++ }
++
++ cln->data = lmcf;
++ cln->handler = ngx_http_lua_ngx_raw_header_cleanup;
++#endif
++
+ if (lmcf->lua == NULL) {
+ dd("initializing lua vm");
+
diff --git a/www/nginx/files/extra-patch-ngx_http_memc_util.c b/www/nginx/files/extra-patch-ngx_http_memc_util.c
new file mode 100644
index 000000000000..8537d72142cb
--- /dev/null
+++ b/www/nginx/files/extra-patch-ngx_http_memc_util.c
@@ -0,0 +1,17 @@
+--- ../memc-nginx-module-0.17/src/ngx_http_memc_util.c.orig 2016-11-20 14:54:02.640140000 -0500
++++ ../memc-nginx-module-0.17/src/ngx_http_memc_util.c 2016-11-20 14:54:34.579764000 -0500
+@@ -141,12 +141,14 @@
+ continue;
+ }
+
++#if (nginx_version < 1011006)
+ if (uscfp[i]->default_port && url->default_port
+ && uscfp[i]->default_port != url->default_port)
+ {
+ dd("upstream_add: default_port not match");
+ continue;
+ }
++#endif
+
+ return uscfp[i];
+ }
diff --git a/www/nginx/files/extra-patch-ngx_http_modsecurity.c b/www/nginx/files/extra-patch-ngx_http_modsecurity.c
new file mode 100644
index 000000000000..cc7849710eb8
--- /dev/null
+++ b/www/nginx/files/extra-patch-ngx_http_modsecurity.c
@@ -0,0 +1,18 @@
+--- ../modsecurity-2.9.1/nginx/modsecurity/ngx_http_modsecurity.c.orig 2017-04-15 10:45:12.886736000 -0400
++++ ../modsecurity-2.9.1/nginx/modsecurity/ngx_http_modsecurity.c 2017-04-15 10:45:59.921529000 -0400
+@@ -528,9 +528,15 @@
+
+ hc = r->http_connection;
+
++#if defined(nginx_version) && nginx_version >= 1011011
++ if (hc->free && size == cscf->large_client_header_buffers.size) {
++
++ buf = hc->free->buf;
++#else
+ if (hc->nfree && size == cscf->large_client_header_buffers.size) {
+
+ buf = hc->free[--hc->nfree];
++#endif
+
+ ngx_log_debug2(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
+ "ModSecurity: use http free large header buffer: %p %uz",
diff --git a/www/nginx/files/extra-patch-ngx_http_redis2_util.c b/www/nginx/files/extra-patch-ngx_http_redis2_util.c
new file mode 100644
index 000000000000..9e71d98e6409
--- /dev/null
+++ b/www/nginx/files/extra-patch-ngx_http_redis2_util.c
@@ -0,0 +1,18 @@
+--- ../redis2-nginx-module-0.12/src/ngx_http_redis2_util.c.orig 2016-11-20 15:00:28.997903000 -0500
++++ ../redis2-nginx-module-0.12/src/ngx_http_redis2_util.c 2016-11-20 15:00:44.173323000 -0500
+@@ -77,6 +77,7 @@
+ continue;
+ }
+
++#if (nginx_version < 1011006)
+ if (uscfp[i]->default_port
+ && url->default_port
+ && uscfp[i]->default_port != url->default_port)
+@@ -84,6 +85,7 @@
+ dd("upstream_add: default_port not match");
+ continue;
+ }
++#endif
+
+ return uscfp[i];
+ }
diff --git a/www/nginx/files/extra-patch-ngx_http_sticky_misc.c b/www/nginx/files/extra-patch-ngx_http_sticky_misc.c
new file mode 100644
index 000000000000..098cc78cdf61
--- /dev/null
+++ b/www/nginx/files/extra-patch-ngx_http_sticky_misc.c
@@ -0,0 +1,17 @@
+--- ../nginx-goodies-nginx-sticky-module-ng-08a395c66e42/ngx_http_sticky_misc.c.orig 2016-07-10 11:39:07.943834000 -0400
++++ ../nginx-goodies-nginx-sticky-module-ng-08a395c66e42/ngx_http_sticky_misc.c 2016-07-10 11:43:05.601078000 -0400
+@@ -12,6 +12,14 @@
+
+ #include "ngx_http_sticky_misc.h"
+
++#ifndef MD5_DIGEST_LENGTH
++ #define MD5_DIGEST_LENGTH 16
++#endif
++#ifndef MD5_CBLOCK
++ #define MD5_CBLOCK 64
++#endif
++
++
+ #ifndef ngx_str_set
+ #define ngx_str_set(str, text) (str)->len = sizeof(text) - 1; (str)->data = (u_char *) text
+ #endif
diff --git a/www/nginx/files/extra-patch-ngx_http_udplog_module.c b/www/nginx/files/extra-patch-ngx_http_udplog_module.c
deleted file mode 100644
index a97325abfa31..000000000000
--- a/www/nginx/files/extra-patch-ngx_http_udplog_module.c
+++ /dev/null
@@ -1,431 +0,0 @@
---- ../nginx_udplog_module-1.0.0/ngx_http_udplog_module.c.orig 2010-01-05 20:20:35.000000000 +0100
-+++ ../nginx_udplog_module-1.0.0/ngx_http_udplog_module.c 2011-12-02 18:31:18.000000000 +0100
-@@ -1,4 +1,3 @@
--
- /*
- * Copyright (C) 2010 Valery Kholodkov
- *
-@@ -45,6 +44,12 @@
- } ngx_http_log_fmt_t;
-
- typedef struct {
-+ ngx_str_t value;
-+ ngx_array_t *lengths;
-+ ngx_array_t *values;
-+} ngx_http_log_tag_template_t;
-+
-+typedef struct {
- ngx_array_t formats; /* array of ngx_http_log_fmt_t */
- ngx_uint_t combined_used; /* unsigned combined_used:1 */
- } ngx_http_log_main_conf_t;
-@@ -64,8 +69,7 @@
- typedef struct {
- ngx_udp_endpoint_t *endpoint;
- ngx_http_log_fmt_t *format;
-- ngx_uint_t facility;
-- ngx_uint_t severity;
-+ ngx_uint_t bare:1;
- } ngx_http_udplog_t;
-
- typedef struct {
-@@ -73,8 +77,11 @@
- } ngx_http_udplog_main_conf_t;
-
- typedef struct {
-- ngx_array_t *logs; /* array of ngx_http_udplog_t */
-- unsigned off;
-+ ngx_array_t *logs; /* array of ngx_http_udplog_t */
-+ unsigned off;
-+ ngx_http_log_tag_template_t *tag;
-+ ngx_uint_t facility;
-+ ngx_uint_t severity;
- } ngx_http_udplog_conf_t;
-
- ngx_int_t ngx_udp_connect(ngx_udp_connection_t *uc);
-@@ -88,6 +95,8 @@
- void *child);
-
- static char *ngx_http_udplog_set_log(ngx_conf_t *cf, ngx_command_t *cmd, void *conf);
-+static char *ngx_http_udplog_set_priority(ngx_conf_t *cf, ngx_command_t *cmd, void *conf);
-+static char *ngx_http_udplog_set_tag(ngx_conf_t *cf, ngx_command_t *cmd, void *conf);
-
- static ngx_int_t ngx_http_udplog_init(ngx_conf_t *cf);
-
-@@ -96,12 +105,26 @@
-
- { ngx_string("access_udplog"),
- NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF
-- |NGX_HTTP_LMT_CONF|NGX_CONF_TAKE123,
-+ |NGX_HTTP_LMT_CONF|NGX_CONF_TAKE1234,
- ngx_http_udplog_set_log,
- NGX_HTTP_LOC_CONF_OFFSET,
- 0,
- NULL },
-
-+ { ngx_string("udplog_priority"),
-+ NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE12,
-+ ngx_http_udplog_set_priority,
-+ NGX_HTTP_LOC_CONF_OFFSET,
-+ 0,
-+ NULL },
-+
-+ { ngx_string("udplog_tag"),
-+ NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1,
-+ ngx_http_udplog_set_tag,
-+ NGX_HTTP_LOC_CONF_OFFSET,
-+ offsetof(ngx_http_udplog_conf_t, tag),
-+ NULL },
-+
- ngx_null_command
- };
-
-@@ -166,7 +189,7 @@
- { ngx_null_string, 0 }
- };
-
--static ngx_udplog_severity_t ngx_udplog_severity[] = {
-+static ngx_udplog_severity_t ngx_udplog_severities[] = {
- { ngx_string("emerg"), 0 },
- { ngx_string("alert"), 1 },
- { ngx_string("crit"), 2 },
-@@ -190,6 +213,7 @@
- u_char *line, *p;
- size_t len;
- ngx_uint_t i, l, pri;
-+ ngx_str_t tag;
- ngx_http_udplog_t *log;
- ngx_http_log_op_t *op;
- ngx_http_udplog_conf_t *ulcf;
-@@ -205,12 +229,31 @@
- return NGX_OK;
- }
-
-+ if(ulcf->tag != NULL)
-+ {
-+ if(ulcf->tag->lengths == NULL) {
-+ tag = ulcf->tag->value;
-+ }
-+ else{
-+ if (ngx_http_script_run(r, &tag, ulcf->tag->lengths->elts, 0, ulcf->tag->values->elts)
-+ == NULL)
-+ {
-+ return NGX_ERROR;
-+ }
-+ }
-+ }
-+ else {
-+ tag.data = (u_char*)"nginx";
-+ tag.len = sizeof("nginx") - 1;
-+ }
-+
- time = ngx_time();
- ngx_gmtime(time, &tm);
-
- log = ulcf->logs->elts;
-+ pri = ulcf->facility * 8 + ulcf->severity;
-+
- for (l = 0; l < ulcf->logs->nelts; l++) {
-- pri = log[l].facility * 8 + log[l].severity;
-
- if(pri > 255) {
- pri = NGX_UDPLOG_FACILITY_LOCAL7 * 8 + NGX_UDPLOG_SEVERITY_INFO;
-@@ -231,7 +274,8 @@
- }
- }
-
-- len += sizeof("<255>") - 1 + sizeof("Jan 31 00:00:00") - 1 + 1 + ngx_cycle->hostname.len + 1;
-+ len += sizeof("<255>") - 1 + sizeof("Jan 31 00:00:00") - 1 + 1 + ngx_cycle->hostname.len + 1
-+ + tag.len + 2;
-
- #if defined nginx_version && nginx_version >= 7003
- line = ngx_pnalloc(r->pool, len);
-@@ -245,9 +289,12 @@
- /*
- * BSD syslog message header (see RFC 3164)
- */
-- p = ngx_sprintf(line, "<%ui>%s %2d %02d:%02d:%02d %V ", pri, months[tm.ngx_tm_mon - 1], tm.ngx_tm_mday,
-- tm.ngx_tm_hour, tm.ngx_tm_min, tm.ngx_tm_sec, &ngx_cycle->hostname);
--
-+ if(!log[l].bare){
-+ p = ngx_sprintf(line, "<%ui>%s %2d %02d:%02d:%02d %V %V: ", pri, months[tm.ngx_tm_mon - 1], tm.ngx_tm_mday,
-+ tm.ngx_tm_hour, tm.ngx_tm_min, tm.ngx_tm_sec, &ngx_cycle->hostname, &tag);
-+ }else{
-+ p = line;
-+ }
- for (i = 0; i < log[l].format->ops->nelts; i++) {
- p = op[i].run(r, p, &op[i]);
- }
-@@ -280,10 +327,15 @@
- uc->sockaddr = endpoint->peer_addr.sockaddr;
- uc->socklen = endpoint->peer_addr.socklen;
- uc->server = endpoint->peer_addr.name;
--#if defined nginx_version && nginx_version >= 7054
-+#if defined nginx_version && ( nginx_version >= 7054 && nginx_version < 8032 )
- uc->log = &cf->cycle->new_log;
- #else
- uc->log = cf->cycle->new_log;
-+#if defined nginx_version && nginx_version >= 8032
-+ uc->log.handler = NULL;
-+ uc->log.data = NULL;
-+ uc->log.action = "logging";
-+#endif
- #endif
-
- return NGX_OK;
-@@ -320,6 +372,11 @@
-
- if (uc->connection == NULL) {
- if(ngx_udp_connect(uc) != NGX_OK) {
-+ if(uc->connection != NULL) {
-+ ngx_free_connection(uc->connection);
-+ uc->connection = NULL;
-+ }
-+
- return NGX_ERROR;
- }
-
-@@ -335,7 +392,11 @@
- }
-
- if ((size_t) n != (size_t) len) {
-+#if defined nginx_version && nginx_version >= 8032
-+ ngx_log_error(NGX_LOG_CRIT, &uc->log, 0, "send() incomplete");
-+#else
- ngx_log_error(NGX_LOG_CRIT, uc->log, 0, "send() incomplete");
-+#endif
- return NGX_ERROR;
- }
-
-@@ -364,6 +425,9 @@
- if (conf == NULL) {
- return NGX_CONF_ERROR;
- }
-+ conf->off = 1;
-+ conf->facility = NGX_CONF_UNSET_UINT;
-+ conf->severity = NGX_CONF_UNSET_UINT;
-
- return conf;
- }
-@@ -374,37 +438,21 @@
- ngx_http_udplog_conf_t *prev = parent;
- ngx_http_udplog_conf_t *conf = child;
-
-- ngx_http_udplog_t *log;
-- ngx_http_log_fmt_t *fmt;
-- ngx_http_log_main_conf_t *lmcf;
--
-- if(conf->logs || conf->off) {
-- return NGX_CONF_OK;
-+ if(conf->tag == NULL) {
-+ conf->tag = prev->tag;
- }
-
-- conf->logs = prev->logs;
-- conf->off = prev->off;
-+ ngx_conf_merge_uint_value(conf->facility,
-+ prev->facility, NGX_UDPLOG_FACILITY_LOCAL7);
-+ ngx_conf_merge_uint_value(conf->severity,
-+ prev->severity, NGX_UDPLOG_SEVERITY_INFO);
-
- if(conf->logs || conf->off) {
- return NGX_CONF_OK;
- }
-
-- conf->logs = ngx_array_create(cf->pool, 2, sizeof(ngx_http_udplog_t));
-- if(conf->logs == NULL) {
-- return NGX_CONF_ERROR;
-- }
--
-- log = ngx_array_push(conf->logs);
-- if(log == NULL) {
-- return NGX_CONF_ERROR;
-- }
--
-- lmcf = ngx_http_conf_get_module_main_conf(cf, ngx_http_log_module);
-- fmt = lmcf->formats.elts;
--
-- /* the default "combined" format */
-- log->format = &fmt[0];
-- lmcf->combined_used = 1;
-+ conf->logs = prev->logs;
-+ conf->off = prev->off;
-
- return NGX_CONF_OK;
- }
-@@ -434,12 +482,6 @@
- return endpoint;
- }
-
--static ngx_int_t
--ngx_http_udplog_set_facility_and_severity(ngx_http_udplog_t *log, ngx_str_t *value)
--{
-- return NGX_OK;
--}
--
- static char *
- ngx_http_udplog_set_log(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
- {
-@@ -458,6 +500,7 @@
- ulcf->off = 1;
- return NGX_CONF_OK;
- }
-+ ulcf->off = 0;
-
- if (ulcf->logs == NULL) {
- ulcf->logs = ngx_array_create(cf->pool, 2, sizeof(ngx_http_udplog_t));
-@@ -483,10 +526,11 @@
-
- ngx_memzero(&u, sizeof(ngx_url_t));
-
-- u.host = value[1];
-- u.port = 514;
-+ u.url = value[1];
-+ u.default_port = 514;
-+ u.no_resolve = 0;
-
-- if(ngx_inet_resolve_host(cf->pool, &u) != NGX_OK) {
-+ if(ngx_parse_url(cf->pool, &u) != NGX_OK) {
- ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, "%V: %s", &u.host, u.err);
- return NGX_CONF_ERROR;
- }
-@@ -496,7 +540,7 @@
- if(log->endpoint == NULL) {
- return NGX_CONF_ERROR;
- }
--
-+ log->bare = 0;
- if (cf->args->nelts >= 3) {
- name = value[2];
-
-@@ -508,14 +552,18 @@
- name.data = (u_char *) "combined";
- lmcf->combined_used = 1;
- }
--
-+ if (cf->args->nelts >= 4) {
-+ if (ngx_strcmp(value[3].data, "bare") == 0) {
-+ log->bare = 1;
-+ }
-+ }
- fmt = lmcf->formats.elts;
- for (i = 0; i < lmcf->formats.nelts; i++) {
- if (fmt[i].name.len == name.len
- && ngx_strcasecmp(fmt[i].name.data, name.data) == 0)
- {
- log->format = &fmt[i];
-- goto facility;
-+ goto done;
- }
- }
-
-@@ -523,12 +571,105 @@
- "unknown log format \"%V\"", &name);
- return NGX_CONF_ERROR;
-
--facility:
-- log->facility = NGX_UDPLOG_FACILITY_LOCAL7;
-- log->severity = NGX_UDPLOG_SEVERITY_INFO;
-+done:
-+
-+ return NGX_CONF_OK;
-+}
-+
-+
-+static char *
-+ngx_http_udplog_set_priority(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
-+{
-+ ngx_http_udplog_conf_t *ulcf = conf;
-+ ngx_str_t *value;
-+ ngx_udplog_facility_t *f;
-+ ngx_udplog_severity_t *s;
-+
-+ value = cf->args->elts;
-+
-+ f = ngx_udplog_facilities;
-+
-+ while(f->name.data != NULL) {
-+ if(ngx_strncmp(f->name.data, value[1].data, f->name.len) == 0)
-+ break;
-+
-+ f++;
-+ }
-+
-+ if(f->name.data != NULL) {
-+ ulcf->facility = f->number;
-+ }
-+ else {
-+ ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
-+ "unknown facility \"%V\"", &value[1]);
-+ return NGX_CONF_ERROR;
-+ }
-+
-+ if (cf->args->nelts == 3) {
-+ s = ngx_udplog_severities;
-+
-+ while(s->name.data != NULL) {
-+ if(ngx_strncmp(s->name.data, value[2].data, s->name.len) == 0)
-+ break;
-+
-+ s++;
-+ }
-+
-+ if(s->name.data != NULL) {
-+ ulcf->severity = s->number;
-+ }
-+ else {
-+ ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
-+ "unknown severity \"%V\"", &value[2]);
-+ return NGX_CONF_ERROR;
-+ }
-+ }
-+
-+ return NGX_CONF_OK;
-+}
-+
-+static char *
-+ngx_http_udplog_set_tag(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
-+{
-+ ngx_int_t n;
-+ ngx_str_t *value;
-+ ngx_http_script_compile_t sc;
-+ ngx_http_log_tag_template_t **field, *h;
-+
-+ field = (ngx_http_log_tag_template_t**) (((u_char*)conf) + cmd->offset);
-+
-+ value = cf->args->elts;
-+
-+ if (*field == NULL) {
-+ *field = ngx_palloc(cf->pool, sizeof(ngx_http_log_tag_template_t));
-+ if (*field == NULL) {
-+ return NGX_CONF_ERROR;
-+ }
-+ }
-+
-+ h = *field;
-+
-+ h->value = value[1];
-+ h->lengths = NULL;
-+ h->values = NULL;
-+
-+ /*
-+ * Compile field name
-+ */
-+ n = ngx_http_script_variables_count(&value[1]);
-+
-+ if (n > 0) {
-+ ngx_memzero(&sc, sizeof(ngx_http_script_compile_t));
-+
-+ sc.cf = cf;
-+ sc.source = &value[1];
-+ sc.lengths = &h->lengths;
-+ sc.values = &h->values;
-+ sc.variables = n;
-+ sc.complete_lengths = 1;
-+ sc.complete_values = 1;
-
-- if(cf->args->nelts == 4) {
-- if(ngx_http_udplog_set_facility_and_severity(log, &value[3]) != NGX_OK) {
-+ if (ngx_http_script_compile(&sc) != NGX_OK) {
- return NGX_CONF_ERROR;
- }
- }
diff --git a/www/nginx/files/extra-patch-ngx_http_upstream_fair_module.c.n b/www/nginx/files/extra-patch-ngx_http_upstream_fair_module.c.n
new file mode 100644
index 000000000000..648f056b8eb6
--- /dev/null
+++ b/www/nginx/files/extra-patch-ngx_http_upstream_fair_module.c.n
@@ -0,0 +1,21 @@
+--- ../nginx_upstream_fair-20090923/ngx_http_upstream_fair_module.c.orig 2016-11-20 15:42:48.550372000 -0500
++++ ../nginx_upstream_fair-20090923/ngx_http_upstream_fair_module.c 2016-11-20 15:45:24.507554000 -0500
+@@ -565,8 +565,7 @@
+
+
+ /* an upstream implicitly defined by proxy_pass, etc. */
+-
+- if (us->port == 0 && us->default_port == 0) {
++ if (us->port == 0) {
+ ngx_log_error(NGX_LOG_EMERG, cf->log, 0,
+ "no port in upstream \"%V\" in %s:%ui",
+ &us->host, us->file_name, us->line);
+@@ -576,7 +575,7 @@
+ ngx_memzero(&u, sizeof(ngx_url_t));
+
+ u.host = us->host;
+- u.port = (in_port_t) (us->port ? us->port : us->default_port);
++ u.port = (in_port_t) us->port;
+
+ if (ngx_inet_resolve_host(cf->pool, &u) != NGX_OK) {
+ if (u.err) {
diff --git a/www/nginx/files/extra-patch-ngx_inet_slab.c b/www/nginx/files/extra-patch-ngx_inet_slab.c
new file mode 100644
index 000000000000..74855f083e11
--- /dev/null
+++ b/www/nginx/files/extra-patch-ngx_inet_slab.c
@@ -0,0 +1,29 @@
+--- ../ngx_dynamic_upstream-0.1.3/src/ngx_inet_slab.c.orig 2016-05-25 19:27:27.204200000 -0400
++++ ../ngx_dynamic_upstream-0.1.3/src/ngx_inet_slab.c 2016-05-25 19:28:07.177622000 -0400
+@@ -250,7 +250,7 @@
+ return NGX_ERROR;
+ }
+
+- ngx_memcpy(sin, u->sockaddr, sizeof(struct sockaddr_in));
++ ngx_memcpy(sin, &u->sockaddr, sizeof(struct sockaddr_in));
+
+ u->addrs[0].sockaddr = (struct sockaddr *) sin;
+ u->addrs[0].socklen = sizeof(struct sockaddr_in);
+@@ -277,7 +277,7 @@
+
+ u->family = u->addrs[0].sockaddr->sa_family;
+ u->socklen = u->addrs[0].socklen;
+- ngx_memcpy(u->sockaddr, u->addrs[0].sockaddr, u->addrs[0].socklen);
++ ngx_memcpy(&u->sockaddr, u->addrs[0].sockaddr, u->addrs[0].socklen);
+
+ switch (u->family) {
+
+@@ -405,7 +405,7 @@
+ return NGX_ERROR;
+ }
+
+- ngx_memcpy(sin6, u->sockaddr, sizeof(struct sockaddr_in6));
++ ngx_memcpy(sin6, &u->sockaddr, sizeof(struct sockaddr_in6));
+
+ u->addrs[0].sockaddr = (struct sockaddr *) sin6;
+ u->addrs[0].socklen = sizeof(struct sockaddr_in6);
diff --git a/www/nginx/files/extra-patch-ngx_postgres_module.c b/www/nginx/files/extra-patch-ngx_postgres_module.c
new file mode 100644
index 000000000000..dd8e302d1fd4
--- /dev/null
+++ b/www/nginx/files/extra-patch-ngx_postgres_module.c
@@ -0,0 +1,17 @@
+--- ../ngx_postgres-1.0rc7/src/ngx_postgres_module.c.orig 2016-11-20 15:34:25.763542000 -0500
++++ ../ngx_postgres-1.0rc7/src/ngx_postgres_module.c 2016-11-20 15:34:41.023867000 -0500
+@@ -1320,12 +1320,14 @@
+ continue;
+ }
+
++#if (nginx_version < 1011006)
+ if (uscfp[i]->default_port && url->default_port
+ && (uscfp[i]->default_port != url->default_port))
+ {
+ dd("default_port doesn't match");
+ continue;
+ }
++#endif
+
+ dd("returning");
+ return uscfp[i];
diff --git a/www/nginx/files/extra-patch-spnego-http-auth-nginx-module-config b/www/nginx/files/extra-patch-spnego-http-auth-nginx-module-config
index 9ac1b629b398..5f8d7523c16e 100644
--- a/www/nginx/files/extra-patch-spnego-http-auth-nginx-module-config
+++ b/www/nginx/files/extra-patch-spnego-http-auth-nginx-module-config
@@ -1,8 +1,9 @@
---- ../spnego-http-auth-nginx-module-c85a38c/config.orig 2015-06-13 20:49:15.590751000 +0300
-+++ ../spnego-http-auth-nginx-module-c85a38c/config 2015-06-13 20:49:31.024936000 +0300
-@@ -1,4 +1,4 @@
+--- ../spnego-http-auth-nginx-module-0c6ff3f/config.orig 2017-04-15 13:07:01.159506000 -0400
++++ ../spnego-http-auth-nginx-module-0c6ff3f/config 2017-04-15 13:07:36.283398000 -0400
+@@ -1,5 +1,5 @@
ngx_addon_name=ngx_http_auth_spnego_module
- HTTP_MODULES="$HTTP_MODULES ngx_http_auth_spnego_module"
- NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_auth_spnego_module.c"
--CORE_LIBS="$CORE_LIBS -lgssapi_krb5 -lkrb5 -lcom_err"
-+CORE_LIBS="$CORE_LIBS %%GSSAPILIBS%% -lcom_err"
+-ngx_feature_libs="-lgssapi_krb5 -lkrb5 -lcom_err"
++ngx_feature_libs="%%GSSAPILIBS%% -lcom_err"
+
+ if uname -o | grep -q FreeBSD; then
+ ngx_feature_libs="$ngx_feature_libs -lgssapi"
diff --git a/www/nginx/files/extra-patch-src-c-ngx_http_clojure_socket.c b/www/nginx/files/extra-patch-src-c-ngx_http_clojure_socket.c
new file mode 100644
index 000000000000..9ed68350ee74
--- /dev/null
+++ b/www/nginx/files/extra-patch-src-c-ngx_http_clojure_socket.c
@@ -0,0 +1,11 @@
+--- ../nginx-clojure-0.4.4/src/c/ngx_http_clojure_socket.c.orig 2016-05-24 17:39:48.898351000 -0400
++++ ../nginx-clojure-0.4.4/src/c/ngx_http_clojure_socket.c 2016-05-25 19:23:44.584704000 -0400
+@@ -317,7 +317,7 @@
+ }
+ u->resolved->host.data = url->host.data;
+ u->resolved->host.len = url->host.len;
+- ngx_http_clojure_socket_upstream_connect(u, (struct sockaddr *)url->sockaddr, url->socklen);
++ ngx_http_clojure_socket_upstream_connect(u, &url->sockaddr, url->socklen);
+ }
+
+ static void ngx_http_clojure_socket_upstream_connect_inner(ngx_http_clojure_socket_upstream_t *u) {
diff --git a/www/nginx/files/extra-patch-src-http-ngx_http_upstream_round_robin.h b/www/nginx/files/extra-patch-src-http-ngx_http_upstream_round_robin.h
index 9f6d868ff171..84c99aaaed61 100644
--- a/www/nginx/files/extra-patch-src-http-ngx_http_upstream_round_robin.h
+++ b/www/nginx/files/extra-patch-src-http-ngx_http_upstream_round_robin.h
@@ -1,13 +1,14 @@
---- 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 {
+--- src/http/ngx_http_upstream_round_robin.h.orig 2016-10-11 11:03:02.000000000 -0400
++++ src/http/ngx_http_upstream_round_robin.h 2016-10-11 19:56:33.262307000 -0400
+@@ -35,6 +35,11 @@
+
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; */
+ ngx_msec_t slow_start;
+ ngx_msec_t start_time;
- #if (NGX_HTTP_SSL)