[Midnightbsd-cvs] mports [16360] U trunk/www/nginx: nginx 1.4.7

laffer1 at midnightbsd.org laffer1 at midnightbsd.org
Tue Apr 22 07:39:15 EDT 2014


Revision: 16360
          http://svnweb.midnightbsd.org/mports/?rev=16360
Author:   laffer1
Date:     2014-04-22 07:39:14 -0400 (Tue, 22 Apr 2014)
Log Message:
-----------
nginx 1.4.7

Modified Paths:
--------------
    trunk/www/nginx/Makefile
    trunk/www/nginx/distinfo
    trunk/www/nginx/files/extra-patch-agentzh-set-misc-nginx-module-config
    trunk/www/nginx/files/extra-patch-chaoslawful-drizzle-nginx-module-config
    trunk/www/nginx/files/extra-patch-nginx-modsecurity-config
    trunk/www/nginx/files/extra-patch-ngx_http_sflow_config.c
    trunk/www/nginx/files/extra-patch-ngx_http_sflow_config.h
    trunk/www/nginx/files/extra-patch-ngx_http_upload_module.c
    trunk/www/nginx/files/extra-patch-passenger-build-nginx.rb
    trunk/www/nginx/files/extra-patch-syslog_support

Property Changed:
----------------
    trunk/www/nginx/files/extra-patch-agentzh-set-misc-nginx-module-config
    trunk/www/nginx/files/extra-patch-calio-iconv-nginx-module-config
    trunk/www/nginx/files/extra-patch-chaoslawful-drizzle-nginx-module-config
    trunk/www/nginx/files/extra-patch-nginx-modsecurity-config
    trunk/www/nginx/files/extra-patch-ngx_http_notice_module.c
    trunk/www/nginx/files/extra-patch-ngx_http_sflow_config.c
    trunk/www/nginx/files/extra-patch-ngx_http_sflow_config.h
    trunk/www/nginx/files/extra-patch-ngx_http_streaming_module.c
    trunk/www/nginx/files/extra-patch-ngx_http_udplog_module.c
    trunk/www/nginx/files/extra-patch-ngx_http_upload_module.c
    trunk/www/nginx/files/extra-patch-ngx_http_upstream.h
    trunk/www/nginx/files/extra-patch-ngx_postgres-config
    trunk/www/nginx/files/extra-patch-passenger-build-nginx.rb
    trunk/www/nginx/files/extra-patch-syslog_support
    trunk/www/nginx/files/nginx.in
    trunk/www/nginx/files/patch-conf-nginx.conf
    trunk/www/nginx/pkg-descr

Modified: trunk/www/nginx/Makefile
===================================================================
--- trunk/www/nginx/Makefile	2014-04-22 11:33:31 UTC (rev 16359)
+++ trunk/www/nginx/Makefile	2014-04-22 11:39:14 UTC (rev 16360)
@@ -1,8 +1,8 @@
 # $MidnightBSD$
 
 PORTNAME=	nginx
-PORTVERSION=	1.4.2
-PORTREVISION=	1
+PORTVERSION=	1.4.7
+
 CATEGORIES=	www
 MASTER_SITES=	http://nginx.org/download/
 MASTER_SITES+=	${MASTER_SITE_FREEBSD_LOCAL}
@@ -59,6 +59,7 @@
 	HTTP_DAV_EXT \
 	HTTP_EVAL \
 	HTTP_FANCYINDEX \
+	HTTP_FOOTER \
 	HTTP_MOGILEFS \
 	HTTP_NOTICE \
 	HTTP_PUSH \
@@ -147,6 +148,7 @@
 HTTP_DAV_EXT_DESC=		3rd party webdav_ext module
 HTTP_EVAL_DESC=			3rd party eval module
 HTTP_FANCYINDEX_DESC=		3rd party http_fancyindex module
+HTTP_FOOTER_DESC=		3rd party http_footer module
 HTTP_MOGILEFS_DESC=		3rd party mogilefs module
 HTTP_MP4_H264_DESC=		3rd party mp4/h264 module
 HTTP_NOTICE_DESC=		3rd party notice module
@@ -191,7 +193,6 @@
 VIDEO_DESC=			Video module support
 
 WANT_GNOME=	yes
-MAKE_JOBS_SAFE=	yes
 
 .include <bsd.mport.options.mk>
 
@@ -264,8 +265,7 @@
 		--http-log-path=${NGINX_ACCESSLOG}
 
 .if ${PORT_OPTIONS:MHTTP_ACCEPT_LANGUAGE}
-GIT_ACCEPT_LANGUAGE_VERSION=	02262ce
-FETCH_ARGS=	-pRr
+GIT_ACCEPT_LANGUAGE_VERSION=	2f69842
 MASTER_SITES+=	https://github.com/giom/nginx_accept_language_module/tarball/master/:accept_language
 DISTFILES+=	giom-nginx_accept_language_module-${GIT_ACCEPT_LANGUAGE_VERSION}.tar.gz:accept_language
 CONFIGURE_ARGS+=--add-module=${WRKDIR}/giom-nginx_accept_language_module-${GIT_ACCEPT_LANGUAGE_VERSION}
@@ -285,7 +285,6 @@
 
 .if ${PORT_OPTIONS:MHTTP_AUTH_DIGEST}
 GIT_AUTH_DIGEST_VERSION=	bd1c86a
-FETCH_ARGS=	-pRr
 MASTER_SITES+=	https://github.com/samizdatco/nginx-http-auth-digest/tarball/master/:auth_digest
 DISTFILES+=	samizdatco-nginx-http-auth-digest-${GIT_AUTH_DIGEST_VERSION}.tar.gz:auth_digest
 CONFIGURE_ARGS+=--add-module=${WRKDIR}/samizdatco-nginx-http-auth-digest-${GIT_AUTH_DIGEST_VERSION}
@@ -326,7 +325,8 @@
 .endif
 
 .if ${PORT_OPTIONS:MCTPP2}
-LIB_DEPENDS+=	ctpp2:${PORTSDIR}/textproc/ctpp2
+IGNORE=	CTPP2: update require
+LIB_DEPENDS+=	libctpp2.so:${PORTSDIR}/textproc/ctpp2
 NGINX_CTPP2_VERSION=	0.5
 MASTER_SITES+=	http://dl.vbart.ru/ngx-ctpp/:ctpp2
 DISTFILES+=	ngx_ctpp2-${NGINX_CTPP2_VERSION}.tar.gz:ctpp2
@@ -334,9 +334,8 @@
 .endif
 
 .if ${PORT_OPTIONS:MECHO}
-NGINX_ECHO_VERSION=	0.45
-GIT_ECHO_VERSION=	0-g6ce0801
-FETCH_ARGS=	-pRr
+NGINX_ECHO_VERSION=	0.51
+GIT_ECHO_VERSION=	0-g44c92a5
 MASTER_SITES+=	https://github.com/agentzh/echo-nginx-module/tarball/v${NGINX_ECHO_VERSION}/:echo
 DISTFILES+=	agentzh-echo-nginx-module-v${NGINX_ECHO_VERSION}-${GIT_ECHO_VERSION}.tar.gz:echo
 CONFIGURE_ARGS+=--add-module=${WRKDIR}/agentzh-echo-nginx-module-${GIT_ECHO_VERSION:S/^0-g//}
@@ -343,9 +342,8 @@
 .endif
 
 .if ${PORT_OPTIONS:MHEADERS_MORE}
-NGINX_HEADERS_MORE_VERSION=	0.20
-GIT_HEADERS_MORE_VERSION=	0-g0df17d0
-FETCH_ARGS=	-pRr
+NGINX_HEADERS_MORE_VERSION=	0.25
+GIT_HEADERS_MORE_VERSION=	0-g0c6e05d
 MASTER_SITES+=	https://github.com/agentzh/headers-more-nginx-module/tarball/v${NGINX_HEADERS_MORE_VERSION}/:headers_more
 DISTFILES+=	agentzh-headers-more-nginx-module-v${NGINX_HEADERS_MORE_VERSION}-${GIT_HEADERS_MORE_VERSION}.tar.gz:headers_more
 CONFIGURE_ARGS+=--add-module=${WRKDIR}/agentzh-headers-more-nginx-module-${GIT_HEADERS_MORE_VERSION:S/^0-g//}
@@ -360,7 +358,6 @@
 LIB_DEPENDS+=	expat:${PORTSDIR}/textproc/expat2
 NGINX_DAV_EXT_VERSION=	0.0.2
 GIT_DAV_EXT_VERSION=	0-g0e07a3e
-FETCH_ARGS=	-pRr
 MASTER_SITES+=	https://github.com/arut/nginx-dav-ext-module/tarball/v${NGINX_DAV_EXT_VERSION}/:dav_ext
 DISTFILES+=	arut-nginx-dav-ext-module-v${NGINX_DAV_EXT_VERSION}-${GIT_DAV_EXT_VERSION}.tar.gz:dav_ext
 CONFIGURE_ARGS+=--add-module=${WRKDIR}/arut-nginx-dav-ext-module-${GIT_DAV_EXT_VERSION:S/^0-g//}
@@ -369,7 +366,6 @@
 .if ${PORT_OPTIONS:MHTTP_EVAL}
 NGINX_EVAL_VERSION=	1.0.3
 GIT_EVAL_VERSION=	0-g125fa2e
-FETCH_ARGS=	-pRr
 MASTER_SITES+=	https://github.com/vkholodkov/nginx-eval-module/tarball/${NGINX_EVAL_VERSION}/:eval
 DISTFILES+=	vkholodkov-nginx-eval-module-${NGINX_EVAL_VERSION}-${GIT_EVAL_VERSION}.tar.gz:eval
 CONFIGURE_ARGS+=--add-module=${WRKDIR}/vkholodkov-nginx-eval-module-${GIT_EVAL_VERSION:S/^0-g//}
@@ -383,6 +379,14 @@
 CONFIGURE_ARGS+=--add-module=${WRKDIR}/ngx-fancyindex-${NGINX_FANCYINDEX_VERSION}
 .endif
 
+.if ${PORT_OPTIONS:MHTTP_FOOTER}
+NGINX_FOOTER_VERSION=	1.2.2
+GIT_FOOTER_VERSION=	0-g3572184
+MASTER_SITES+=	https://github.com/alibaba/nginx-http-footer-filter/tarball/${NGINX_FOOTER_VERSION}/:footer
+DISTFILES+=	alibaba-nginx-footer-filter-${NGINX_FOOTER_VERSION}-${GIT_FOOTER_VERSION}.tar.gz:footer
+CONFIGURE_ARGS+=--add-module=${WRKDIR}/alibaba-nginx-http-footer-filter-${GIT_FOOTER_VERSION:S/^0-g//}
+.endif
+
 .if ${PORT_OPTIONS:MHTTP_FLV}
 CONFIGURE_ARGS+=--with-http_flv_module
 .endif
@@ -426,7 +430,6 @@
 
 .if ${PORT_OPTIONS:MHTTP_NOTICE}
 GIT_NOTICE_VERSION=	0-g3c95966
-FETCH_ARGS=	-pRr
 MASTER_SITES+=	https://github.com/kr/nginx-notice/tarball/master/:notice
 DISTFILES+=	kr-nginx-notice-${GIT_NOTICE_VERSION}.tar.gz:notice
 CONFIGURE_ARGS+=--add-module=${WRKDIR}/kr-nginx-notice-${GIT_NOTICE_VERSION:S/^0-g//}
@@ -449,7 +452,6 @@
 .if ${PORT_OPTIONS:MHTTP_PUSH_STREAM}
 NGINX_PUSH_STREAM_VERSION=	0.3.5
 GIT_PUSH_STREAM_VERSION=	0-gb6a8c46
-FETCH_ARGS=	-pRr
 MASTER_SITES+=	https://github.com/wandenberg/nginx-push-stream-module/tarball/${NGINX_PUSH_STREAM_VERSION}/:pushstream
 DISTFILES+=	wandenberg-nginx-push-stream-module-${NGINX_PUSH_STREAM_VERSION}-${GIT_PUSH_STREAM_VERSION}.tar.gz:pushstream
 CONFIGURE_ARGS+=--add-module=${WRKDIR}/wandenberg-nginx-push-stream-module-${GIT_PUSH_STREAM_VERSION:S/^0-g//}
@@ -464,7 +466,7 @@
 .endif
 
 .if ${PORT_OPTIONS:MHTTP_REDIS}
-NGINX_REDIS_VERSION=	0.3.6
+NGINX_REDIS_VERSION=	0.3.7
 MASTER_SITES+=	${MASTER_SITE_LOCAL:S/$/:redis/}
 MASTER_SITE_SUBDIR+=	osa/:redis
 DISTFILES+=	ngx_http_redis-${NGINX_REDIS_VERSION}.tar.gz:redis
@@ -481,7 +483,6 @@
 .if ${PORT_OPTIONS:MHTTP_SUBS_FILTER}
 NGINX_HTTP_SUBS_FILTER_VERSION=	0.6.2
 GIT_HTTP_SUBS_FILTER_VERSION=	0-g27a01b3
-FETCH_ARGS=	-pRr
 MASTER_SITES+=	https://github.com/yaoweibin/ngx_http_substitutions_filter_module/tarball/${NGINX_HTTP_SUBS_FILTER_VERSION}/:subs_filter
 DISTFILES+=	yaoweibin-ngx_http_substitutions_filter_module-${NGINX_HTTP_SUBS_FILTER_VERSION}-${GIT_HTTP_SUBS_FILTER_VERSION}.tar.gz:subs_filter
 CONFIGURE_ARGS+=--add-module=${WRKDIR}/yaoweibin-ngx_http_substitutions_filter_module-${GIT_HTTP_SUBS_FILTER_VERSION:S/^0-g//}
@@ -510,7 +511,6 @@
 .if ${PORT_OPTIONS:MHTTP_UPLOAD_PROGRESS}
 NGINX_UPLOADPROGRESS_VERSION=	0.9.0
 GIT_UPLOADPROGRESS_VERSION=	0-ga788dea
-FETCH_ARGS=	-pRr
 MASTER_SITES+=	https://github.com/masterzen/nginx-upload-progress-module/tarball/v${NGINX_UPLOADPROGRESS_VERSION}/:uploadprogress
 DISTFILES+=	masterzen-nginx-upload-progress-module-v${NGINX_UPLOADPROGRESS_VERSION}-${GIT_UPLOADPROGRESS_VERSION}.tar.gz:uploadprogress
 CONFIGURE_ARGS+=--add-module=${WRKDIR}/masterzen-nginx-upload-progress-module-${GIT_UPLOADPROGRESS_VERSION:S/^0-g//}
@@ -553,10 +553,9 @@
 .endif
 
 .if ${PORT_OPTIONS:MDRIZZLE}
-LIB_DEPENDS+=	drizzle:${PORTSDIR}/databases/libdrizzle
-NGINX_DRIZZLE_VERSION=	0.1.5
-GIT_DRIZZLE_VERSION=	0-g943c915
-FETCH_ARGS=	-pRr
+LIB_DEPENDS+=	libdrizzle.so:${PORTSDIR}/databases/libdrizzle
+NGINX_DRIZZLE_VERSION=	0.1.7
+GIT_DRIZZLE_VERSION=	0-gb83a8a9
 MASTER_SITES+=	https://github.com/chaoslawful/drizzle-nginx-module/tarball/v${NGINX_DRIZZLE_VERSION}/:drizzle
 DISTFILES+=	chaoslawful-drizzle-nginx-module-v${NGINX_DRIZZLE_VERSION}-${GIT_DRIZZLE_VERSION}.tar.gz:drizzle
 CONFIGURE_ARGS+=--add-module=${WRKDIR}/chaoslawful-drizzle-nginx-module-${GIT_DRIZZLE_VERSION:S/^0-g//}
@@ -564,9 +563,8 @@
 .endif
 
 .if ${PORT_OPTIONS:MARRAYVAR} || ${PORT_OPTIONS:MENCRYPTSESSION} || ${PORT_OPTIONS:MFORMINPUT} || ${PORT_OPTIONS:MICONV} || ${PORT_OPTIONS:MLUA} || ${PORT_OPTIONS:MSET_MISC}
-NGINX_DEVEL_KIT_VERSION=	0.2.18
-GIT_DEVEL_KIT_VERSION=	0-g48bc5dd
-FETCH_ARGS=	-pRr
+NGINX_DEVEL_KIT_VERSION=	0.2.19
+GIT_DEVEL_KIT_VERSION=	0-g8dd0df5
 MASTER_SITES+=	https://github.com/simpl/ngx_devel_kit/tarball/v${NGINX_DEVEL_KIT_VERSION}/:devel_kit
 DISTFILES+=	simpl-ngx_devel_kit-v${NGINX_DEVEL_KIT_VERSION}-${GIT_DEVEL_KIT_VERSION}.tar.gz:devel_kit
 CONFIGURE_ARGS+=--add-module=${WRKDIR}/simpl-ngx_devel_kit-${GIT_DEVEL_KIT_VERSION:S/^0-g//}
@@ -575,7 +573,6 @@
 .if ${PORT_OPTIONS:MENCRYPTSESSION}
 NGINX_ENCRYPTSESSION_VERSION=	0.03
 GIT_ENCRYPTSESSION_VERSION=	0-g49d741b
-FETCH_ARGS=	-pRr
 MASTER_SITES+=	https://github.com/agentzh/encrypted-session-nginx-module/tarball/v${NGINX_ENCRYPTSESSION_VERSION}/:encryptsession
 DISTFILES+=	agentzh-encrypted-session-nginx-module-v${NGINX_ENCRYPTSESSION_VERSION}-${GIT_ENCRYPTSESSION_VERSION}.tar.gz:encryptsession
 CONFIGURE_ARGS+=--add-module=${WRKDIR}/agentzh-encrypted-session-nginx-module-${GIT_ENCRYPTSESSION_VERSION:S/^0-g//}
@@ -586,7 +583,6 @@
 GIT_GRIDFS_VERSION=	0-gb5f8113
 MONGO_C_DRIVER_VERSION=		0.3.1
 GIT_MONGO_C_DRIVER_VERSION=	0-g9b4b232
-FETCH_ARGS=	-pRr
 MASTER_SITES+=	https://github.com/mdirolf/nginx-gridfs/tarball/v${NGINX_GRIDFS_VERSION}/:gridfs
 MASTER_SITES+=	https://github.com/mongodb/mongo-c-driver/tarball/v${MONGO_C_DRIVER_VERSION}/:mongo_c
 DISTFILES+=	mdirolf-nginx-gridfs-v${NGINX_GRIDFS_VERSION}-${GIT_GRIDFS_VERSION}.tar.gz:gridfs
@@ -597,7 +593,6 @@
 .if ${PORT_OPTIONS:MLET}
 NGINX_LET_VERSION=	0.0.4
 GIT_LET_VERSION=	0-ga5e1dc5
-FETCH_ARGS=	-pRr
 MASTER_SITES+=	https://github.com/arut/nginx-let-module/tarball/v${NGINX_LET_VERSION}/:let
 DISTFILES+=	arut-nginx-let-module-v${NGINX_LET_VERSION}-${GIT_LET_VERSION}.tar.gz:let
 CONFIGURE_ARGS+=--add-module=${WRKDIR}/arut-nginx-let-module-${GIT_LET_VERSION:S/^0-g//}
@@ -604,12 +599,11 @@
 .endif
 
 .if ${PORT_OPTIONS:MLUA}
-LIB_DEPENDS+=	luajit-5.1:${PORTSDIR}/lang/luajit
+LIB_DEPENDS+=	libluajit-5.1.so:${PORTSDIR}/lang/luajit
 CONFIGURE_ENV+=	"LUAJIT_INC=${LOCALBASE}/include/luajit-2.0"
 CONFIGURE_ENV+=	"LUAJIT_LIB=${LOCALBASE}/lib"
-NGINX_LUA_VERSION=	0.8.2
-GIT_LUA_VERSION=	0-g3915187
-FETCH_ARGS=	-pRr
+NGINX_LUA_VERSION=	0.9.4
+GIT_LUA_VERSION=	0-g6169a19
 MASTER_SITES+=	https://github.com/chaoslawful/lua-nginx-module/tarball/v${NGINX_LUA_VERSION}/:lua
 DISTFILES+=	chaoslawful-lua-nginx-module-v${NGINX_LUA_VERSION}-${GIT_LUA_VERSION}.tar.gz:lua
 CONFIGURE_ARGS+=--add-module=${WRKDIR}/chaoslawful-lua-nginx-module-${GIT_LUA_VERSION:S/^0-g//}
@@ -616,9 +610,8 @@
 .endif
 
 .if ${PORT_OPTIONS:MMEMC}
-NGINX_MEMC_VERSION=	0.13rc3
-GIT_MEMC_VERSION=	0-g4007350
-FETCH_ARGS=	-pRr
+NGINX_MEMC_VERSION=	0.14
+GIT_MEMC_VERSION=	0-gde4cf86
 MASTER_SITES+=	https://github.com/agentzh/memc-nginx-module/tarball/v${NGINX_MEMC_VERSION}/:memc
 DISTFILES+=	agentzh-memc-nginx-module-v${NGINX_MEMC_VERSION}-${GIT_MEMC_VERSION}.tar.gz:memc
 CONFIGURE_ARGS+=--add-module=${WRKDIR}/agentzh-memc-nginx-module-${GIT_MEMC_VERSION:S/^0-g//}
@@ -625,9 +618,9 @@
 .endif
 
 .if ${PORT_OPTIONS:MMODSECURITY}
-NGINX_MODSECURITY_VERSION=	2.7.4
-LIB_DEPENDS+=	pcre:${PORTSDIR}/devel/pcre \
-		apr-1:${PORTSDIR}/devel/apr1
+NGINX_MODSECURITY_VERSION=	2.7.5
+LIB_DEPENDS+=	libpcre.so:${PORTSDIR}/devel/pcre \
+		libapr-1.so:${PORTSDIR}/devel/apr1
 USE_APACHE=	22+
 USE_GNOME=	libxml2
 MASTER_SITES+=	http://www.modsecurity.org/tarball/${NGINX_MODSECURITY_VERSION}/:modsecurity
@@ -644,7 +637,7 @@
 .endif
 
 .if ${PORT_OPTIONS:MHTTP_REWRITE} || defined(USE_HTTP_REWRITE)
-LIB_DEPENDS+=	pcre:${PORTSDIR}/devel/pcre
+LIB_DEPENDS+=	libpcre.so:${PORTSDIR}/devel/pcre
 CONFIGURE_ARGS+=--with-pcre
 .else
 PKGNAMESUFFIX:=	${PKGNAMESUFFIX}-nopcre
@@ -653,7 +646,7 @@
 .endif
 
 .if ${PORT_OPTIONS:MPASSENGER}
-PASSENGER_VERSION=	4.0.10
+PASSENGER_VERSION=	4.0.35
 MASTER_SITES+=	http://s3.amazonaws.com/phusion-passenger/releases/:passenger
 DISTFILES+=	passenger-${PASSENGER_VERSION}.tar.gz:passenger
 CONFIGURE_ARGS+=--add-module=${WRKDIR}/passenger-${PASSENGER_VERSION}/ext/nginx
@@ -674,9 +667,8 @@
 .endif
 
 .if ${PORT_OPTIONS:MRDS_CSV}
-NGINX_RDS_CSV_VERSION=	0.05rc2
-GIT_RDS_CSV_VERSION=	0-gc15d3a4
-FETCH_ARGS=	-pRr
+NGINX_RDS_CSV_VERSION=	0.05
+GIT_RDS_CSV_VERSION=	0-g607e26b
 MASTER_SITES+=	https://github.com/agentzh/rds-csv-nginx-module/tarball/v${NGINX_RDS_CSV_VERSION}/:rdscsv
 DISTFILES+=	agentzh-rds-csv-nginx-module-v${NGINX_RDS_CSV_VERSION}-${GIT_RDS_CSV_VERSION}.tar.gz:rdscsv
 CONFIGURE_ARGS+=--add-module=${WRKDIR}/agentzh-rds-csv-nginx-module-${GIT_RDS_CSV_VERSION:S/^0-g//}
@@ -683,9 +675,8 @@
 .endif
 
 .if ${PORT_OPTIONS:MRDS_JSON}
-NGINX_RDS_JSON_VERSION=	0.12rc10
-GIT_RDS_JSON_VERSION=	0-g74c21b3
-FETCH_ARGS=	-pRr
+NGINX_RDS_JSON_VERSION=	0.13
+GIT_RDS_JSON_VERSION=	0-g8292070
 MASTER_SITES+=	https://github.com/agentzh/rds-json-nginx-module/tarball/v${NGINX_RDS_JSON_VERSION}/:rdsjson
 DISTFILES+=	agentzh-rds-json-nginx-module-v${NGINX_RDS_JSON_VERSION}-${GIT_RDS_JSON_VERSION}.tar.gz:rdsjson
 CONFIGURE_ARGS+=--add-module=${WRKDIR}/agentzh-rds-json-nginx-module-${GIT_RDS_JSON_VERSION:S/^0-g//}
@@ -694,7 +685,6 @@
 .if ${PORT_OPTIONS:MREDIS2}
 NGINX_REDIS2_VERSION=	0.10
 GIT_REDIS2_VERSION=	0-g78a7622
-FETCH_ARGS=	-pRr
 MASTER_SITES+=	https://github.com/agentzh/redis2-nginx-module/tarball/v${NGINX_REDIS2_VERSION}/:redis2
 DISTFILES+=	agentzh-redis2-nginx-module-v${NGINX_REDIS2_VERSION}-${GIT_REDIS2_VERSION}.tar.gz:redis2
 CONFIGURE_ARGS+=--add-module=${WRKDIR}/agentzh-redis2-nginx-module-${GIT_REDIS2_VERSION:S/^0-g//}
@@ -701,18 +691,15 @@
 .endif
 
 .if ${PORT_OPTIONS:MRTMP}
-NGINX_RTMP_VERSION=	1.0.1
-GIT_RTMP_VERSION=	0-g421d9ff
-FETCH_ARGS=	-pRr
-MASTER_SITES+=	https://github.com/arut/nginx-rtmp-module/tarball/v${NGINX_RTMP_VERSION}/:rtmp
-DISTFILES+=	arut-rtmp-nginx-module-v${NGINX_RTMP_VERSION}-${GIT_RTMP_VERSION}.tar.gz:rtmp
-CONFIGURE_ARGS+=--add-module=${WRKDIR}/arut-nginx-rtmp-module-${GIT_RTMP_VERSION:S/^0-g//}
+NGINX_RTMP_VERSION=	1.1.2
+MASTER_SITES+=	https://github.com/arut/nginx-rtmp-module/archive/v${NGINX_RTMP_VERSION}/:rtmp
+DISTFILES+=	rtmp-nginx-module-v${NGINX_RTMP_VERSION}.tar.gz:rtmp
+CONFIGURE_ARGS+=--add-module=${WRKDIR}/nginx-rtmp-module-${NGINX_RTMP_VERSION}
 .endif
 
 .if ${PORT_OPTIONS:MSET_MISC}
-NGINX_SET_MISC_VERSION=	0.22rc8
-GIT_SET_MISC_VERSION=	0-g658c235
-FETCH_ARGS=	-pRr
+NGINX_SET_MISC_VERSION=	0.24
+GIT_SET_MISC_VERSION=	0-g36fd035
 MASTER_SITES+=	https://github.com/agentzh/set-misc-nginx-module/tarball/v${NGINX_SET_MISC_VERSION}/:setmisc
 DISTFILES+=	agentzh-set-misc-nginx-module-v${NGINX_SET_MISC_VERSION}-${GIT_SET_MISC_VERSION}.tar.gz:setmisc
 CONFIGURE_ARGS+=--add-module=${WRKDIR}/agentzh-set-misc-nginx-module-${GIT_SET_MISC_VERSION:S/^0-g//}
@@ -720,7 +707,7 @@
 .endif
 
 .if ${PORT_OPTIONS:MSFLOW}
-NGINX_SFLOW_VERSION=	0.9.6
+NGINX_SFLOW_VERSION=	0.9.7
 MASTER_SITES+=	http://nginx-sflow-module.googlecode.com/files/:sflow
 DISTFILES+=	nginx-sflow-module-${NGINX_SFLOW_VERSION}.tar.gz:sflow
 CONFIGURE_ARGS+=--add-module=${WRKDIR}/nginx-sflow-module-${NGINX_SFLOW_VERSION}
@@ -736,9 +723,8 @@
 .endif
 
 .if ${PORT_OPTIONS:MSRCACHE}
-NGINX_SRCACHE_VERSION=	0.21
-GIT_SRCACHE_VERSION=	0-g996a76c
-FETCH_ARGS=	-pRr
+NGINX_SRCACHE_VERSION=	0.25
+GIT_SRCACHE_VERSION=	0-gf25fe90
 MASTER_SITES+=	https://github.com/agentzh/srcache-nginx-module/tarball/v${NGINX_SRCACHE_VERSION}/:srcache
 DISTFILES+=	agentzh-srcache-nginx-module-v${NGINX_SRCACHE_VERSION}-${GIT_SRCACHE_VERSION}.tar.gz:srcache
 CONFIGURE_ARGS+=--add-module=${WRKDIR}/agentzh-srcache-nginx-module-${GIT_SRCACHE_VERSION:S/^0-g//}
@@ -760,7 +746,6 @@
 .if ${PORT_OPTIONS:MTCP_PROXY}
 NGINX_TCP_PROXY_VERSION=	0.26
 GIT_TCP_PROXY_VERSION=	0-gb83e5a6
-FETCH_ARGS=	-pRr
 MASTER_SITES+=	https://github.com/yaoweibin/nginx_tcp_proxy_module/tarball/v${NGINX_TCP_PROXY_VERSION}/:tcp_proxy
 DISTFILES+=	yaoweibin-nginx_tcp_proxy_module-v${NGINX_TCP_PROXY_VERSION}-${GIT_TCP_PROXY_VERSION}.tar.gz:tcp_proxy
 CONFIGURE_ARGS+=--add-module=${WRKDIR}/yaoweibin-nginx_tcp_proxy_module-${GIT_TCP_PROXY_VERSION:S/^0-g//}
@@ -776,7 +761,6 @@
 
 .if ${PORT_OPTIONS:MXRID_HEADER}
 GIT_XRID_VERSION=	0daa3cc
-FETCH_ARGS=	-pRr
 MASTER_SITES+=	https://github.com/gabor/nginx-x-rid-header/tarball/master/:xrid
 DISTFILES+=	gabor-nginx-x-rid-header-${GIT_XRID_VERSION}.tar.gz:xrid
 CONFIGURE_ARGS+=--add-module=${WRKDIR}/gabor-nginx-x-rid-header-${GIT_XRID_VERSION}
@@ -783,9 +767,8 @@
 .endif
 
 .if ${PORT_OPTIONS:MXSS}
-NGINX_XSS_VERSION=	0.03rc9
-GIT_XSS_VERSION=	0-gbeddbe1
-FETCH_ARGS=	-pRr
+NGINX_XSS_VERSION=	0.04
+GIT_XSS_VERSION=	0-g7e37038
 MASTER_SITES+=	https://github.com/agentzh/xss-nginx-module/tarball/v${NGINX_XSS_VERSION}/:xss
 DISTFILES+=	agentzh-xss-nginx-module-v${NGINX_XSS_VERSION}-${GIT_XSS_VERSION}.tar.gz:xss
 CONFIGURE_ARGS+=--add-module=${WRKDIR}/agentzh-xss-nginx-module-${GIT_XSS_VERSION:S/^0-g//}
@@ -792,7 +775,7 @@
 .endif
 
 .if ${PORT_OPTIONS:MSPDY}
-USE_OPENSSL_PORT=	yes
+NGINX_OPENSSL=	yes
 USE_HTTP_SSL=	yes
 CONFIGURE_ARGS+=--with-http_spdy_module
 .endif
@@ -831,9 +814,8 @@
 .endif
 
 .if ${PORT_OPTIONS:MARRAYVAR}
-NGINX_ARRAYVAR_VERSION=	0.03rc1
-GIT_ARRAYVAR_VERSION=	0-gfed751a
-FETCH_ARGS=	-pRr
+NGINX_ARRAYVAR_VERSION=	0.03
+GIT_ARRAYVAR_VERSION=	0-g4676747
 MASTER_SITES+=	https://github.com/agentzh/array-var-nginx-module/tarball/v${NGINX_ARRAYVAR_VERSION}/:arrayvar
 DISTFILES+=	agentzh-array-var-nginx-module-v${NGINX_ARRAYVAR_VERSION}-${GIT_ARRAYVAR_VERSION}.tar.gz:arrayvar
 CONFIGURE_ARGS+=--add-module=${WRKDIR}/agentzh-array-var-nginx-module-${GIT_ARRAYVAR_VERSION:S/^0-g//}
@@ -842,7 +824,6 @@
 .if ${PORT_OPTIONS:MFORMINPUT}
 NGINX_FORMINPUT_VERSION=	0.07
 GIT_FORMINPUT_VERSION=	0-g78de845
-FETCH_ARGS=	-pRr
 MASTER_SITES+=	https://github.com/calio/form-input-nginx-module/tarball/v${NGINX_FORMINPUT_VERSION}/:forminput
 DISTFILES+=	calio-form-input-nginx-module-v${NGINX_FORMINPUT_VERSION}-${GIT_FORMINPUT_VERSION}.tar.gz:forminput
 CONFIGURE_ARGS+=--add-module=${WRKDIR}/calio-form-input-nginx-module-${GIT_FORMINPUT_VERSION:S/^0-g//}
@@ -852,7 +833,6 @@
 LIB_DEPENDS+=	iconv:${PORTSDIR}/converters/libiconv
 NGINX_ICONV_VERSION=	0.10
 GIT_ICONV_VERSION=	0-gb37efb5
-FETCH_ARGS=	-pRr
 MASTER_SITES+=	https://github.com/calio/iconv-nginx-module/tarball/v${NGINX_ICONV_VERSION}/:iconv
 DISTFILES+=	calio-iconv-nginx-module-v${NGINX_ICONV_VERSION}-${GIT_ICONV_VERSION}.tar.gz:iconv
 CONFIGURE_ARGS+=--add-module=${WRKDIR}/calio-iconv-nginx-module-${GIT_ICONV_VERSION:S/^0-g//}
@@ -866,7 +846,12 @@
 
 .if defined(NGINX_OPENSSL)
 USE_OPENSSL=	yes
+.if ${PORT_OPTIONS:MSPDY}
+
+WITH_OPENSSL_PORT=	yes
+
 .endif
+.endif
 
 pre-everything::
 	@${ECHO_MSG}
@@ -940,11 +925,11 @@
 .endif
 .if ${PORT_OPTIONS:MSPDY}
 .if ${PORT_OPTIONS:MDRIZZLE}
-	@${REINPLACE_CMD} '584d' \
+	@${REINPLACE_CMD} '589d' \
 		${WRKDIR}/chaoslawful-drizzle-nginx-module-${GIT_DRIZZLE_VERSION:S/^0-g//}/src/ngx_http_drizzle_util.c
 .endif
 .if ${PORT_OPTIONS:MLUA}
-	@${REINPLACE_CMD} '437d' \
+	@${REINPLACE_CMD} '464d' \
 		${WRKDIR}/chaoslawful-lua-nginx-module-${GIT_LUA_VERSION:S/^0-g//}/src/ngx_http_lua_socket_tcp.c
 .endif
 .endif

Modified: trunk/www/nginx/distinfo
===================================================================
--- trunk/www/nginx/distinfo	2014-04-22 11:33:31 UTC (rev 16359)
+++ trunk/www/nginx/distinfo	2014-04-22 11:39:14 UTC (rev 16360)
@@ -1,7 +1,7 @@
-SHA256 (nginx-1.4.2.tar.gz) = 5361ffb7b0ebf8b1a04369bc3d1295eaed091680c1c58115f88d56c8e51f3611
-SIZE (nginx-1.4.2.tar.gz) = 767688
-SHA256 (giom-nginx_accept_language_module-02262ce.tar.gz) = 3191f4caa70d9a8942c4f10b6abaaa96af451991d4b5e1e3d7b991376b00bf0c
-SIZE (giom-nginx_accept_language_module-02262ce.tar.gz) = 3398
+SHA256 (nginx-1.4.7.tar.gz) = 23b8ff4a76817090678f91b0efbfcef59a93492f6612dc8370c44c1f1ce1b626
+SIZE (nginx-1.4.7.tar.gz) = 769153
+SHA256 (giom-nginx_accept_language_module-2f69842.tar.gz) = fbcdf792160a1eff7b9549aeb5209d6e76716ff8e86b05e42c90b2d2f858e011
+SIZE (giom-nginx_accept_language_module-2f69842.tar.gz) = 3399
 SHA256 (nginx-accesskey-2.0.3.tar.gz) = d9e94321e78a02de16c57f3e048fd31059fd8116ed03d6de7180f435c52502b1
 SIZE (nginx-accesskey-2.0.3.tar.gz) = 2632
 SHA256 (samizdatco-nginx-http-auth-digest-bd1c86a.tar.gz) = e223f55fd97e56425e232d8698e024707d1b2ed3714eff7d91a4d1ca76b4cbee
@@ -16,10 +16,10 @@
 SIZE (ngx_cache_purge-2.1.tar.gz) = 10535
 SHA256 (ngx_ctpp2-0.5.tar.gz) = f8adfecc23e2c23af95df8549ef92fd52598b21506a9d9df2278b2605668d5a6
 SIZE (ngx_ctpp2-0.5.tar.gz) = 19686
-SHA256 (agentzh-echo-nginx-module-v0.45-0-g6ce0801.tar.gz) = 07e93863492a9177d32b220375e21a326c754ea03814faa57487f3d677b6fa94
-SIZE (agentzh-echo-nginx-module-v0.45-0-g6ce0801.tar.gz) = 73588
-SHA256 (agentzh-headers-more-nginx-module-v0.20-0-g0df17d0.tar.gz) = cb7e90247ebd2cffcde63cbbdd2c893b9fde2a941a7993d9d30e16fad0eaf17d
-SIZE (agentzh-headers-more-nginx-module-v0.20-0-g0df17d0.tar.gz) = 26754
+SHA256 (agentzh-echo-nginx-module-v0.51-0-g44c92a5.tar.gz) = eacf34d90e6e95421e8ccc6500c78d18e45595d60cf96a843bdc41e762e1d548
+SIZE (agentzh-echo-nginx-module-v0.51-0-g44c92a5.tar.gz) = 63455
+SHA256 (agentzh-headers-more-nginx-module-v0.25-0-g0c6e05d.tar.gz) = 7bd16d2bcd14a44c586a5e307171e37a2dfdf1d1d5c250b4d0dd64d36afca2d8
+SIZE (agentzh-headers-more-nginx-module-v0.25-0-g0c6e05d.tar.gz) = 27949
 SHA256 (arut-nginx-dav-ext-module-v0.0.2-0-g0e07a3e.tar.gz) = a0d6fa256e354ce48c06e1f689d26ebb2f7b75f71ce682e34ae6c29331a7fbff
 SIZE (arut-nginx-dav-ext-module-v0.0.2-0-g0e07a3e.tar.gz) = 6065
 SHA256 (vkholodkov-nginx-eval-module-1.0.3-0-g125fa2e.tar.gz) = 945046c42d973be9293e03ab41e3a0e04677524b2cd813cfc5146cf1d2f0ab8f
@@ -36,8 +36,8 @@
 SIZE (nginx_http_push_module-0.692.tar.gz) = 29119
 SHA256 (wandenberg-nginx-push-stream-module-0.3.5-0-gb6a8c46.tar.gz) = f2c5b2cc3430f023442381b734a1e547dd2ba75a05cd34f2cdcf2431acc4f77e
 SIZE (wandenberg-nginx-push-stream-module-0.3.5-0-gb6a8c46.tar.gz) = 153187
-SHA256 (ngx_http_redis-0.3.6.tar.gz) = 9e5d8c0f1317a6910710c94d27f9aca4968c48ee1de271e5034525a1e9b6c70e
-SIZE (ngx_http_redis-0.3.6.tar.gz) = 12099
+SHA256 (ngx_http_redis-0.3.7.tar.gz) = 9dfc14db81f431fdf3d69f3661a37daf110aef5f9479aa7c88cf362bb5d62604
+SIZE (ngx_http_redis-0.3.7.tar.gz) = 12165
 SHA256 (ngx_http_response-0.3.tar.gz) = 0835584029f053051c624adbe33a826ab0205c9d85a02af6019e6b57607e9045
 SIZE (ngx_http_response-0.3.tar.gz) = 2244
 SHA256 (yaoweibin-ngx_http_substitutions_filter_module-0.6.2-0-g27a01b3.tar.gz) = 81864aa6ca85df70d55a2574ce8aefd21ad7ea88fc012a328e59c125e56d1e77
@@ -54,10 +54,10 @@
 SIZE (nginx-sticky-module-1.1.tar.gz) = 115412
 SHA256 (mod_zip-1.1.6.tar.gz) = d30546b4be8308c721df0240ebc38c474c6b577381a110321eded6dbed5104b1
 SIZE (mod_zip-1.1.6.tar.gz) = 21991
-SHA256 (chaoslawful-drizzle-nginx-module-v0.1.5-0-g943c915.tar.gz) = 271e53a200004ea73fcd97a2dc62d17a7c0afdd9708542d39418d7ee0eef3d56
-SIZE (chaoslawful-drizzle-nginx-module-v0.1.5-0-g943c915.tar.gz) = 61201
-SHA256 (simpl-ngx_devel_kit-v0.2.18-0-g48bc5dd.tar.gz) = bfd737ee5608c1ec2e59409c47cb29e390aeb882b8c0bf00d7322e74585cebae
-SIZE (simpl-ngx_devel_kit-v0.2.18-0-g48bc5dd.tar.gz) = 64972
+SHA256 (chaoslawful-drizzle-nginx-module-v0.1.7-0-gb83a8a9.tar.gz) = 7687f119343b2246257ad7269a940e7ca03a1939b8032b444317037f6417fec7
+SIZE (chaoslawful-drizzle-nginx-module-v0.1.7-0-gb83a8a9.tar.gz) = 58730
+SHA256 (simpl-ngx_devel_kit-v0.2.19-0-g8dd0df5.tar.gz) = 9a8c372f8e750d33018d9587d288c17f755e8da38592bca8ef9bf9ea4bab59a7
+SIZE (simpl-ngx_devel_kit-v0.2.19-0-g8dd0df5.tar.gz) = 65033
 SHA256 (agentzh-encrypted-session-nginx-module-v0.03-0-g49d741b.tar.gz) = 4485214756dc935a959efd3a2fcd750263df1719956a4ac73f96b0cee0763395
 SIZE (agentzh-encrypted-session-nginx-module-v0.03-0-g49d741b.tar.gz) = 8947
 SHA256 (mdirolf-nginx-gridfs-v0.8-0-gb5f8113.tar.gz) = f55617873c9b123d610d59e4da52703c07be0bae5c719ef0cc3d45a53480d29c
@@ -66,34 +66,36 @@
 SIZE (mongodb-mongo-c-driver-v0.3.1-0-g9b4b232.tar.gz) = 53033
 SHA256 (arut-nginx-let-module-v0.0.4-0-ga5e1dc5.tar.gz) = 9253581f11966329f64b4b4a49a2a60798665812f9007222592586e64bcd66da
 SIZE (arut-nginx-let-module-v0.0.4-0-ga5e1dc5.tar.gz) = 20543
-SHA256 (chaoslawful-lua-nginx-module-v0.8.2-0-g3915187.tar.gz) = f10ac35781eb119752d003b8d3797e2530cffca9a588788170ddc48de2e1c51c
-SIZE (chaoslawful-lua-nginx-module-v0.8.2-0-g3915187.tar.gz) = 480845
-SHA256 (agentzh-memc-nginx-module-v0.13rc3-0-g4007350.tar.gz) = 8c6f7a421346be1f53240b370cd29edd833f8ca32f6f9b926d66230b15727f0c
-SIZE (agentzh-memc-nginx-module-v0.13rc3-0-g4007350.tar.gz) = 39778
-SHA256 (modsecurity-apache_2.7.4.tar.gz) = 605d6f1b03e648001ef1c7db7b18d51c01edd443b57cbbd4e298770ffdcd0eb9
-SIZE (modsecurity-apache_2.7.4.tar.gz) = 1014983
+SHA256 (chaoslawful-lua-nginx-module-v0.9.4-0-g6169a19.tar.gz) = c91f0112474c6265ec766f4a11d3199047d98c5e021a96ee574016e9f58cf4ed
+SIZE (chaoslawful-lua-nginx-module-v0.9.4-0-g6169a19.tar.gz) = 470252
+SHA256 (agentzh-memc-nginx-module-v0.14-0-gde4cf86.tar.gz) = 5e8cacd7af42685794bbe121264173de4141e5746031e23f8e363ab14ccb1534
+SIZE (agentzh-memc-nginx-module-v0.14-0-gde4cf86.tar.gz) = 37755
+SHA256 (modsecurity-apache_2.7.5.tar.gz) = 9e907536278d8da80d3dbb29aeffe9c4ec37ce9b641035b2da64e993135647a2
+SIZE (modsecurity-apache_2.7.5.tar.gz) = 1045387
 SHA256 (naxsi-core-0.50.tgz) = 7cece5f9d9c5df9e09af1e1023bc8e04bbbbe953e67461b893b8240e82ca52ef
 SIZE (naxsi-core-0.50.tgz) = 49809
-SHA256 (passenger-4.0.10.tar.gz) = e83248bb54769fff87ad4778277240153f9972d9d5fb8fcda2eec45feb51dcc6
-SIZE (passenger-4.0.10.tar.gz) = 3623488
+SHA256 (passenger-4.0.35.tar.gz) = a8b7eeed2ef12e8137d36418a11c928969aaf6b13a91e81445de2a156245f774
+SIZE (passenger-4.0.35.tar.gz) = 4039531
 SHA256 (ngx_postgres-0.9.tar.gz) = aac0141e73b5c440927b7e040072f120b36e49deb2ff36ad00ff96a80622fbec
 SIZE (ngx_postgres-0.9.tar.gz) = 41022
-SHA256 (agentzh-rds-csv-nginx-module-v0.05rc2-0-gc15d3a4.tar.gz) = 5b135136b646c2647de2d89007bafd1136b06f20379555f8ebbc903b55000023
-SIZE (agentzh-rds-csv-nginx-module-v0.05rc2-0-gc15d3a4.tar.gz) = 17993
-SHA256 (agentzh-rds-json-nginx-module-v0.12rc10-0-g74c21b3.tar.gz) = 903b4c88b43b47ca80b45556d702b760707ceecc3decc923340f3b3b69b7f1fe
-SIZE (agentzh-rds-json-nginx-module-v0.12rc10-0-g74c21b3.tar.gz) = 32794
+SHA256 (agentzh-rds-csv-nginx-module-v0.05-0-g607e26b.tar.gz) = 3fa9cb3960a97f505c9ad0cc8683c8fe17ba98aa98d003e255bf214e5144751c
+SIZE (agentzh-rds-csv-nginx-module-v0.05-0-g607e26b.tar.gz) = 18423
+SHA256 (agentzh-rds-json-nginx-module-v0.13-0-g8292070.tar.gz) = 9e59b90d84f9bc814eba85bfcf126e3fd6406ddc771702c096a657c17354c302
+SIZE (agentzh-rds-json-nginx-module-v0.13-0-g8292070.tar.gz) = 32965
 SHA256 (agentzh-redis2-nginx-module-v0.10-0-g78a7622.tar.gz) = c2a164df07759d2a45beacc1f72316be84e9348b7ae5509723eabd2d61cb4897
 SIZE (agentzh-redis2-nginx-module-v0.10-0-g78a7622.tar.gz) = 29850
-SHA256 (arut-rtmp-nginx-module-v1.0.1-0-g421d9ff.tar.gz) = 40a01313fc35d1a2a09559fd5795efce9e69a483164912661899dec6b35f3a2a
-SIZE (arut-rtmp-nginx-module-v1.0.1-0-g421d9ff.tar.gz) = 445856
-SHA256 (agentzh-set-misc-nginx-module-v0.22rc8-0-g658c235.tar.gz) = 7ade6dc6d18b5ab3c2e21a4a1139359e351525ac03f34e2508e5704f157024bd
-SIZE (agentzh-set-misc-nginx-module-v0.22rc8-0-g658c235.tar.gz) = 37053
-SHA256 (nginx-sflow-module-0.9.6.tar.gz) = 5e80d1f8e5ba0963445d8245e09de0cf289936ae9feecb11c5e3a77d021f1ad0
-SIZE (nginx-sflow-module-0.9.6.tar.gz) = 27758
+SHA256 (alibaba-nginx-footer-filter-1.2.2-0-g3572184.tar.gz) = 48a23f879416c0d8da5795c419b94f1ffa42ee06602545f494db4d9aba646e8f                                       
+SIZE (alibaba-nginx-footer-filter-1.2.2-0-g3572184.tar.gz) = 3934
+SHA256 (rtmp-nginx-module-v1.1.2.tar.gz) = 726d294b69db7a09bf537c4ae5b04932dc9551fd8caf13f95936a9f973f106a1
+SIZE (rtmp-nginx-module-v1.1.2.tar.gz) = 516500
+SHA256 (agentzh-set-misc-nginx-module-v0.24-0-g36fd035.tar.gz) = dd00e4c2312db6e50e3fae8620285b07618df76c229757f2878989001c5370bb
+SIZE (agentzh-set-misc-nginx-module-v0.24-0-g36fd035.tar.gz) = 40399
+SHA256 (nginx-sflow-module-0.9.7.tar.gz) = 508d15a43059abab08281bfa66d2dd520e2e7635d0b17043549bb331c8755b76
+SIZE (nginx-sflow-module-0.9.7.tar.gz) = 27614
 SHA256 (ngx_slowfs_cache-1.10.tar.gz) = 1e81453942e5b0877de1f1f06c56ae82918ea9818255cb935bcb673c95a758a1
 SIZE (ngx_slowfs_cache-1.10.tar.gz) = 11809
-SHA256 (agentzh-srcache-nginx-module-v0.21-0-g996a76c.tar.gz) = 2a9f5218fbf9b92f59263d57690ec184cdf418975a8063a36b417b2082ce5046
-SIZE (agentzh-srcache-nginx-module-v0.21-0-g996a76c.tar.gz) = 63267
+SHA256 (agentzh-srcache-nginx-module-v0.25-0-gf25fe90.tar.gz) = fccf700d63d75c821e298094008b5a436fb8a6ccb5b09f13708e96b73b8ee0fd
+SIZE (agentzh-srcache-nginx-module-v0.25-0-gf25fe90.tar.gz) = 57291
 SHA256 (ngx_supervisord-1.4.tar.gz) = 0954a4efb1b955692acf523e169221146d6aa93ad1643c9f2482f75a1fbf9e3b
 SIZE (ngx_supervisord-1.4.tar.gz) = 19351
 SHA256 (yaoweibin-nginx_tcp_proxy_module-v0.26-0-gb83e5a6.tar.gz) = 4d843b8d0511b269382938ba5546f902ec24dbfa76c12f6bd6961d7aaaf3866a
@@ -102,10 +104,10 @@
 SIZE (nginx_udplog_module-1.0.0.tar.gz) = 6284
 SHA256 (gabor-nginx-x-rid-header-0daa3cc.tar.gz) = 136239b8f9ab2fbefb2aabc6897d3f12cc8063ce817901f9b8a624e12fbc6035
 SIZE (gabor-nginx-x-rid-header-0daa3cc.tar.gz) = 2714
-SHA256 (agentzh-xss-nginx-module-v0.03rc9-0-gbeddbe1.tar.gz) = 444d7e319bb2af4c7892815407f53e4ffe21183f3e6711eafe86ed7523a3531b
-SIZE (agentzh-xss-nginx-module-v0.03rc9-0-gbeddbe1.tar.gz) = 9891
-SHA256 (agentzh-array-var-nginx-module-v0.03rc1-0-gfed751a.tar.gz) = 345e60d7a479409b7a7aba933a042629d59fd4fbfaed1d0f7fe43cc688e48ced
-SIZE (agentzh-array-var-nginx-module-v0.03rc1-0-gfed751a.tar.gz) = 9500
+SHA256 (agentzh-xss-nginx-module-v0.04-0-g7e37038.tar.gz) = 3e5b1eba411e1e51bbb197d2adb2d5304cd4050dca95f506cae635e4af5e9b35
+SIZE (agentzh-xss-nginx-module-v0.04-0-g7e37038.tar.gz) = 10535
+SHA256 (agentzh-array-var-nginx-module-v0.03-0-g4676747.tar.gz) = 9670207b5a74ddbdf510b973ddbcf3e4ecd4c5fe50829b17c560ba4a30aa73f4
+SIZE (agentzh-array-var-nginx-module-v0.03-0-g4676747.tar.gz) = 9518
 SHA256 (calio-form-input-nginx-module-v0.07-0-g78de845.tar.gz) = d5b2c42a3b9fd2970107eb74c2226cbbfbad48c89807303db903932d21ff76aa
 SIZE (calio-form-input-nginx-module-v0.07-0-g78de845.tar.gz) = 10580
 SHA256 (calio-iconv-nginx-module-v0.10-0-gb37efb5.tar.gz) = e90a406a14d5f419bd500e19082da81390e8ba6040926857926f1a899a53379d

Modified: trunk/www/nginx/files/extra-patch-agentzh-set-misc-nginx-module-config
===================================================================
--- trunk/www/nginx/files/extra-patch-agentzh-set-misc-nginx-module-config	2014-04-22 11:33:31 UTC (rev 16359)
+++ trunk/www/nginx/files/extra-patch-agentzh-set-misc-nginx-module-config	2014-04-22 11:39:14 UTC (rev 16360)
@@ -1,5 +1,5 @@
---- ../agentzh-set-misc-nginx-module-658c235/config.orig       2011-12-09 10:27:53.861265188 +0300
-+++ ../agentzh-set-misc-nginx-module-658c235/config    2011-12-09 10:28:07.107259301 +0300
+--- ../agentzh-set-misc-nginx-module-36fd035/config.orig       2011-12-09 10:27:53.861265188 +0300
++++ ../agentzh-set-misc-nginx-module-36fd035/config    2011-12-09 10:28:07.107259301 +0300
 @@ -1,10 +1,3 @@
 -if echo $HTTP_MODULES | grep " ndk_http_module" > /dev/null; then
 -    echo "found ngx_devel_kit for ngx_set_misc; looks good."


Property changes on: trunk/www/nginx/files/extra-patch-agentzh-set-misc-nginx-module-config
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1
\ No newline at end of property
Index: trunk/www/nginx/files/extra-patch-calio-iconv-nginx-module-config
===================================================================
--- trunk/www/nginx/files/extra-patch-calio-iconv-nginx-module-config	2014-04-22 11:33:31 UTC (rev 16359)
+++ trunk/www/nginx/files/extra-patch-calio-iconv-nginx-module-config	2014-04-22 11:39:14 UTC (rev 16360)

Property changes on: trunk/www/nginx/files/extra-patch-calio-iconv-nginx-module-config
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1
\ No newline at end of property
Modified: trunk/www/nginx/files/extra-patch-chaoslawful-drizzle-nginx-module-config
===================================================================
--- trunk/www/nginx/files/extra-patch-chaoslawful-drizzle-nginx-module-config	2014-04-22 11:33:31 UTC (rev 16359)
+++ trunk/www/nginx/files/extra-patch-chaoslawful-drizzle-nginx-module-config	2014-04-22 11:39:14 UTC (rev 16360)
@@ -1,5 +1,5 @@
---- ../chaoslawful-drizzle-nginx-module-943c915/config.orig	2011-12-30 10:26:53.000000000 +0400
-+++ ../chaoslawful-drizzle-nginx-module-943c915/config	2011-12-30 10:28:20.000000000 +0400
+--- ../chaoslawful-drizzle-nginx-module-b83a8a9/config.orig	2011-12-30 10:26:53.000000000 +0400
++++ ../chaoslawful-drizzle-nginx-module-b83a8a9/config	2011-12-30 10:28:20.000000000 +0400
 @@ -22,12 +22,12 @@
  
      if [ $ngx_found = no ]; then


Property changes on: trunk/www/nginx/files/extra-patch-chaoslawful-drizzle-nginx-module-config
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1
\ No newline at end of property
Modified: trunk/www/nginx/files/extra-patch-nginx-modsecurity-config
===================================================================
--- trunk/www/nginx/files/extra-patch-nginx-modsecurity-config	2014-04-22 11:33:31 UTC (rev 16359)
+++ trunk/www/nginx/files/extra-patch-nginx-modsecurity-config	2014-04-22 11:39:14 UTC (rev 16360)
@@ -1,5 +1,5 @@
---- ../modsecurity-apache_2.7.4/nginx/modsecurity/config.orig	2013-06-04 10:14:07.000000000 +0400
-+++ ../modsecurity-apache_2.7.4/nginx/modsecurity/config	2013-06-04 10:17:30.000000000 +0400
+--- ../modsecurity-apache_2.7.5/nginx/modsecurity/config.orig	2013-06-04 10:14:07.000000000 +0400
++++ ../modsecurity-apache_2.7.5/nginx/modsecurity/config	2013-06-04 10:17:30.000000000 +0400
 @@ -3,5 +3,5 @@
  HTTP_AUX_FILTER_MODULES="ngx_http_modsecurity $HTTP_AUX_FILTER_MODULES"
  NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_modsecurity.c $ngx_addon_dir/apr_bucket_nginx.c $ngx_addon_dir/ngx_pool_context.c"


Property changes on: trunk/www/nginx/files/extra-patch-nginx-modsecurity-config
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1
\ No newline at end of property
Index: trunk/www/nginx/files/extra-patch-ngx_http_notice_module.c
===================================================================
--- trunk/www/nginx/files/extra-patch-ngx_http_notice_module.c	2014-04-22 11:33:31 UTC (rev 16359)
+++ trunk/www/nginx/files/extra-patch-ngx_http_notice_module.c	2014-04-22 11:39:14 UTC (rev 16360)

Property changes on: trunk/www/nginx/files/extra-patch-ngx_http_notice_module.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1
\ No newline at end of property
Modified: trunk/www/nginx/files/extra-patch-ngx_http_sflow_config.c
===================================================================
--- trunk/www/nginx/files/extra-patch-ngx_http_sflow_config.c	2014-04-22 11:33:31 UTC (rev 16359)
+++ trunk/www/nginx/files/extra-patch-ngx_http_sflow_config.c	2014-04-22 11:39:14 UTC (rev 16360)
@@ -1,5 +1,5 @@
---- ../nginx-sflow-module-0.9.6/ngx_http_sflow_config.c.orig	2012-06-07 04:52:57.000000000 +0400
-+++ ../nginx-sflow-module-0.9.6/ngx_http_sflow_config.c	2012-06-07 04:59:18.000000000 +0400
+--- ../nginx-sflow-module-0.9.7/ngx_http_sflow_config.c.orig	2012-06-07 04:52:57.000000000 +0400
++++ ../nginx-sflow-module-0.9.7/ngx_http_sflow_config.c	2012-06-07 04:59:18.000000000 +0400
 @@ -26,7 +26,6 @@
          ngx_log_error(NGX_LOG_ERR, log, 0, "getaddrinfo() failed: %s", gai_strerror(err));
          switch(err) {


Property changes on: trunk/www/nginx/files/extra-patch-ngx_http_sflow_config.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1
\ No newline at end of property
Modified: trunk/www/nginx/files/extra-patch-ngx_http_sflow_config.h
===================================================================
--- trunk/www/nginx/files/extra-patch-ngx_http_sflow_config.h	2014-04-22 11:33:31 UTC (rev 16359)
+++ trunk/www/nginx/files/extra-patch-ngx_http_sflow_config.h	2014-04-22 11:39:14 UTC (rev 16360)
@@ -1,5 +1,5 @@
---- ../nginx-sflow-module-0.9.6/ngx_http_sflow_config.h.orig	2012-07-31 21:36:49.000000000 +0400
-+++ ../nginx-sflow-module-0.9.6/ngx_http_sflow_config.h	2012-07-31 21:37:20.000000000 +0400
+--- ../nginx-sflow-module-0.9.7/ngx_http_sflow_config.h.orig	2012-07-31 21:36:49.000000000 +0400
++++ ../nginx-sflow-module-0.9.7/ngx_http_sflow_config.h	2012-07-31 21:37:20.000000000 +0400
 @@ -17,7 +17,7 @@
    -----------------___________________________------------------
  */


Property changes on: trunk/www/nginx/files/extra-patch-ngx_http_sflow_config.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1
\ No newline at end of property
Index: trunk/www/nginx/files/extra-patch-ngx_http_streaming_module.c
===================================================================
--- trunk/www/nginx/files/extra-patch-ngx_http_streaming_module.c	2014-04-22 11:33:31 UTC (rev 16359)
+++ trunk/www/nginx/files/extra-patch-ngx_http_streaming_module.c	2014-04-22 11:39:14 UTC (rev 16360)

Property changes on: trunk/www/nginx/files/extra-patch-ngx_http_streaming_module.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1
\ No newline at end of property
Index: trunk/www/nginx/files/extra-patch-ngx_http_udplog_module.c
===================================================================
--- trunk/www/nginx/files/extra-patch-ngx_http_udplog_module.c	2014-04-22 11:33:31 UTC (rev 16359)
+++ trunk/www/nginx/files/extra-patch-ngx_http_udplog_module.c	2014-04-22 11:39:14 UTC (rev 16360)

Property changes on: trunk/www/nginx/files/extra-patch-ngx_http_udplog_module.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1
\ No newline at end of property
Modified: trunk/www/nginx/files/extra-patch-ngx_http_upload_module.c
===================================================================
--- trunk/www/nginx/files/extra-patch-ngx_http_upload_module.c	2014-04-22 11:33:31 UTC (rev 16359)
+++ trunk/www/nginx/files/extra-patch-ngx_http_upload_module.c	2014-04-22 11:39:14 UTC (rev 16360)
@@ -1,9 +1,106 @@
---- ../nginx_upload_module-2.2.0/ngx_http_upload_module.c.orig	2010-09-27 20:54:15.000000000 +0200
-+++ ../nginx_upload_module-2.2.0/ngx_http_upload_module.c	2013-02-21 22:32:08.000000000 +0100
-@@ -233,6 +233,17 @@
+--- ../nginx_upload_module-2.2.0/ngx_http_upload_module.c.orig	2010-09-27 21:54:15.000000000 +0300
++++ ../nginx_upload_module-2.2.0/ngx_http_upload_module.c	2013-09-10 17:40:59.570815847 +0300
+@@ -50,7 +50,7 @@
+  * State of multipart/form-data parser
+  */
+ typedef enum {
+-	upload_state_boundary_seek,
++  upload_state_boundary_seek,
+ 	upload_state_after_boundary,
+ 	upload_state_headers,
+ 	upload_state_data,
+@@ -95,6 +95,14 @@
+ } ngx_http_upload_field_template_t;
+ 
+ /*
++ * Template for a header
++ */
++typedef struct {
++    ngx_http_complex_value_t      *name;
++    ngx_http_complex_value_t      *value;
++} ngx_http_upload_header_template_t;
++
++/*
+  * Filter for fields in output form
+  */
+ typedef struct {
+@@ -106,6 +114,12 @@
+ #endif
+ } ngx_http_upload_field_filter_t;
+ 
++typedef struct {
++    ngx_path_t                  *path;
++    ngx_http_complex_value_t    dynamic;
++    unsigned                    is_dynamic:1;
++} ngx_http_upload_path_t;
++
+ /*
+  * Upload cleanup record
+  */
+@@ -124,8 +138,8 @@
+ typedef struct {
+     ngx_str_t                     url;
+     ngx_http_complex_value_t      *url_cv;
+-    ngx_path_t                    *state_store_path;
+-    ngx_path_t                    *store_path;
++    ngx_http_upload_path_t        *state_store_path;
++    ngx_http_upload_path_t        *store_path;
+     ngx_uint_t                    store_access;
+     size_t                        buffer_size;
+     size_t                        merge_buffer_size;
+@@ -137,13 +151,17 @@
+     ngx_array_t                   *aggregate_field_templates;
+     ngx_array_t                   *field_filters;
+     ngx_array_t                   *cleanup_statuses;
++    ngx_array_t                   *header_templates;
+     ngx_flag_t                    forward_args;
+     ngx_flag_t                    tame_arrays;
+     ngx_flag_t                    resumable_uploads;
++    ngx_flag_t                    empty_field_names;
+     size_t                        limit_rate;
+ 
+     unsigned int                  md5:1;
+     unsigned int                  sha1:1;
++    unsigned int                  sha256:1;
++    unsigned int                  sha512:1;
+     unsigned int                  crc32:1;
+ } ngx_http_upload_loc_conf_t;
+ 
+@@ -157,6 +175,16 @@
+     u_char      sha1_digest[SHA_DIGEST_LENGTH * 2];
+ } ngx_http_upload_sha1_ctx_t;
+ 
++typedef struct ngx_http_upload_sha256_ctx_s {
++    SHA256_CTX  sha256;
++    u_char      sha256_digest[SHA256_DIGEST_LENGTH * 2];
++} ngx_http_upload_sha256_ctx_t;
++
++typedef struct ngx_http_upload_sha512_ctx_s {
++    SHA512_CTX  sha512;
++    u_char      sha512_digest[SHA512_DIGEST_LENGTH * 2];
++} ngx_http_upload_sha512_ctx_t;
++
+ struct ngx_http_upload_ctx_s;
+ 
+ /*
+@@ -219,7 +247,11 @@
+ 
+     ngx_http_upload_md5_ctx_t   *md5_ctx;    
+     ngx_http_upload_sha1_ctx_t  *sha1_ctx;    
++    ngx_http_upload_sha256_ctx_t *sha256_ctx;
++    ngx_http_upload_sha512_ctx_t *sha512_ctx;
+     uint32_t                    crc32;    
++    ngx_path_t          *store_path;
++    ngx_path_t          *state_store_path;
+ 
+     unsigned int        first_part:1;
+     unsigned int        discard_data:1;
+@@ -233,7 +265,21 @@
      unsigned int        raw_input:1;
  } ngx_http_upload_ctx_t;
  
++static ngx_int_t ngx_http_upload_test_expect(ngx_http_request_t *r);
++
 +static void ngx_http_read_client_request_body_handler(ngx_http_request_t *r);
 +static ngx_int_t ngx_http_do_read_client_request_body(ngx_http_request_t *r);
 +
@@ -16,12 +113,896 @@
 +static ngx_int_t ngx_http_request_body_save_filter(ngx_http_request_t *r, ngx_chain_t *in);
 +
  static ngx_int_t ngx_http_upload_handler(ngx_http_request_t *r);
++static ngx_int_t ngx_http_upload_options_handler(ngx_http_request_t *r);
  static ngx_int_t ngx_http_upload_body_handler(ngx_http_request_t *r);
  
-@@ -2523,6 +2534,534 @@
+ static void *ngx_http_upload_create_loc_conf(ngx_conf_t *cf);
+@@ -248,6 +294,10 @@
+     ngx_http_variable_value_t *v, uintptr_t data);
+ static ngx_int_t ngx_http_upload_sha1_variable(ngx_http_request_t *r,
+     ngx_http_variable_value_t *v, uintptr_t data);
++static ngx_int_t ngx_http_upload_sha256_variable(ngx_http_request_t *r,
++    ngx_http_variable_value_t *v, uintptr_t data);
++static ngx_int_t ngx_http_upload_sha512_variable(ngx_http_request_t *r,
++    ngx_http_variable_value_t *v, uintptr_t data);
+ static ngx_int_t ngx_http_upload_file_size_variable(ngx_http_request_t *r,
+     ngx_http_variable_value_t *v, uintptr_t data);
+ static void ngx_http_upload_content_range_variable_set(ngx_http_request_t *r,
+@@ -271,6 +321,7 @@
+ static ngx_int_t ngx_http_upload_merge_ranges(ngx_http_upload_ctx_t *u, ngx_http_upload_range_t *range_n);
+ static ngx_int_t ngx_http_upload_parse_range(ngx_str_t *range, ngx_http_upload_range_t *range_n);
+ 
++
+ static void ngx_http_read_upload_client_request_body_handler(ngx_http_request_t *r);
+ static ngx_int_t ngx_http_do_read_upload_client_request_body(ngx_http_request_t *r);
+ static ngx_int_t ngx_http_process_request_body(ngx_http_request_t *r, ngx_chain_t *body);
+@@ -279,8 +330,16 @@
+ 
+ static char *ngx_http_upload_set_form_field(ngx_conf_t *cf, ngx_command_t *cmd,
+     void *conf);
++static char *ngx_http_upload_add_header(ngx_conf_t *cf, ngx_command_t *cmd,
++    void *conf);
++static ngx_int_t ngx_http_upload_eval_path(ngx_http_request_t *r);
++static ngx_int_t ngx_http_upload_eval_state_path(ngx_http_request_t *r);
+ static char *ngx_http_upload_pass_form_field(ngx_conf_t *cf, ngx_command_t *cmd,
+     void *conf);
++static char *ngx_http_upload_set_path_slot(ngx_conf_t *cf, ngx_command_t *cmd,
++    void *conf);
++static char *ngx_http_upload_merge_path_value(ngx_conf_t *cf, ngx_http_upload_path_t **path, ngx_http_upload_path_t *prev,
++    ngx_path_init_t *init);
+ static char *ngx_http_upload_cleanup(ngx_conf_t *cf, ngx_command_t *cmd,
+     void *conf);
+ static void ngx_upload_cleanup_handler(void *data);
+@@ -391,7 +450,7 @@
+     { ngx_string("upload_store"),
+       NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LMT_CONF|NGX_HTTP_LIF_CONF
+                         |NGX_CONF_TAKE1234,
+-      ngx_conf_set_path_slot,
++      ngx_http_upload_set_path_slot,
+       NGX_HTTP_LOC_CONF_OFFSET,
+       offsetof(ngx_http_upload_loc_conf_t, store_path),
+       NULL },
+@@ -401,7 +460,7 @@
+      */
+     { ngx_string("upload_state_store"),
+       NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1234,
+-      ngx_conf_set_path_slot,
++      ngx_http_upload_set_path_slot,
+       NGX_HTTP_LOC_CONF_OFFSET,
+       offsetof(ngx_http_upload_loc_conf_t, state_store_path),
+       NULL },
+@@ -575,6 +634,28 @@
+        offsetof(ngx_http_upload_loc_conf_t, resumable_uploads),
+        NULL },
+ 
++     /*
++      * Specifies whether empty field names are allowed
++      */
++     { ngx_string("upload_empty_fiels_names"),
++       NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LMT_CONF|NGX_HTTP_LIF_CONF
++                         |NGX_CONF_FLAG,
++       ngx_conf_set_flag_slot,
++       NGX_HTTP_LOC_CONF_OFFSET,
++       offsetof(ngx_http_upload_loc_conf_t, empty_field_names),
++       NULL },
++
++    /*
++     * Specifies the name and content of the header that will be added to the response
++     */
++    { ngx_string("upload_add_header"),
++      NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LMT_CONF|NGX_HTTP_LIF_CONF
++                        |NGX_CONF_TAKE2,
++      ngx_http_upload_add_header,
++      NGX_HTTP_LOC_CONF_OFFSET,
++      offsetof(ngx_http_upload_loc_conf_t, header_templates),
++      NULL},
++
+       ngx_null_command
+ }; /* }}} */
+ 
+@@ -658,6 +739,22 @@
+       (uintptr_t) "0123456789ABCDEF",
+       NGX_HTTP_VAR_CHANGEABLE|NGX_HTTP_VAR_NOCACHEABLE|NGX_HTTP_VAR_NOHASH, 0 },
+ 
++    { ngx_string("upload_file_sha256"), NULL, ngx_http_upload_sha256_variable,
++      (uintptr_t) "0123456789abcdef",
++      NGX_HTTP_VAR_CHANGEABLE|NGX_HTTP_VAR_NOCACHEABLE|NGX_HTTP_VAR_NOHASH, 0 },
++
++    { ngx_string("upload_file_sha256_uc"), NULL, ngx_http_upload_sha256_variable,
++      (uintptr_t) "0123456789ABCDEF",
++      NGX_HTTP_VAR_CHANGEABLE|NGX_HTTP_VAR_NOCACHEABLE|NGX_HTTP_VAR_NOHASH, 0 },
++
++    { ngx_string("upload_file_sha512"), NULL, ngx_http_upload_sha512_variable,
++      (uintptr_t) "0123456789abcdef",
++      NGX_HTTP_VAR_CHANGEABLE|NGX_HTTP_VAR_NOCACHEABLE|NGX_HTTP_VAR_NOHASH, 0 },
++
++    { ngx_string("upload_file_sha512_uc"), NULL, ngx_http_upload_sha512_variable,
++      (uintptr_t) "0123456789ABCDEF",
++      NGX_HTTP_VAR_CHANGEABLE|NGX_HTTP_VAR_NOCACHEABLE|NGX_HTTP_VAR_NOHASH, 0 },
++
+     { ngx_string("upload_file_crc32"), NULL, ngx_http_upload_crc32_variable,
+       (uintptr_t) offsetof(ngx_http_upload_ctx_t, crc32),
+       NGX_HTTP_VAR_CHANGEABLE|NGX_HTTP_VAR_NOCACHEABLE|NGX_HTTP_VAR_NOHASH, 0 },
+@@ -688,6 +785,9 @@
+     ngx_http_upload_ctx_t     *u;
+     ngx_int_t                 rc;
+ 
++    if(r->method & NGX_HTTP_OPTIONS)
++        return ngx_http_upload_options_handler(r);
++
+     if (!(r->method & NGX_HTTP_POST))
+         return NGX_HTTP_NOT_ALLOWED;
+ 
+@@ -724,6 +824,26 @@
+     }else
+         u->sha1_ctx = NULL;
+ 
++    if(ulcf->sha256) {
++        if(u->sha256_ctx == NULL) {
++            u->sha256_ctx = ngx_palloc(r->pool, sizeof(ngx_http_upload_sha256_ctx_t));
++            if (u->sha256_ctx == NULL) {
++                return NGX_HTTP_INTERNAL_SERVER_ERROR;
++            }
++        }
++    }else
++        u->sha256_ctx = NULL;
++
++    if(ulcf->sha512) {
++        if(u->sha512_ctx == NULL) {
++            u->sha512_ctx = ngx_palloc(r->pool, sizeof(ngx_http_upload_sha512_ctx_t));
++            if (u->sha512_ctx == NULL) {
++                return NGX_HTTP_INTERNAL_SERVER_ERROR;
++            }
++        }
++    }else
++        u->sha512_ctx = NULL;
++
+     u->calculate_crc32 = ulcf->crc32;
+ 
+     u->request = r;
+@@ -746,6 +866,25 @@
+         return rc;
+     }
+ 
++    rc = ngx_http_upload_eval_path(r);
++
++    if(rc != NGX_OK) {
++        upload_shutdown_ctx(u);
++        return rc;
++    }
++
++    rc = ngx_http_upload_eval_state_path(r);
++
++    if(rc != NGX_OK) {
++        upload_shutdown_ctx(u);
++        return rc;
++    }
++
++    if (ngx_http_upload_test_expect(r) != NGX_OK) {
++        upload_shutdown_ctx(u);
++        return NGX_HTTP_INTERNAL_SERVER_ERROR;
++    }
++
+     if(upload_start(u, ulcf) != NGX_OK)
+         return NGX_HTTP_INTERNAL_SERVER_ERROR;
+ 
+@@ -758,6 +897,124 @@
+     return NGX_DONE;
+ } /* }}} */
+ 
++static ngx_int_t ngx_http_upload_add_headers(ngx_http_request_t *r, ngx_http_upload_loc_conf_t *ulcf) { /* {{{ */
++    ngx_str_t                            name;
++    ngx_str_t                            value;
++    ngx_http_upload_header_template_t    *t;
++    ngx_table_elt_t                      *h;
++    ngx_uint_t                           i;
++
++    if(ulcf->header_templates != NULL) {
++        t = ulcf->header_templates->elts;
++        for(i = 0; i < ulcf->header_templates->nelts; i++) {
++            if(ngx_http_complex_value(r, t->name, &name) != NGX_OK) {
++                return NGX_ERROR;
++            }
++
++            if(ngx_http_complex_value(r, t->value, &value) != NGX_OK) {
++                return NGX_ERROR;
++            }
++
++            if(name.len != 0 && value.len != 0) {
++                h = ngx_list_push(&r->headers_out.headers);
++                if(h == NULL) {
++                    return NGX_ERROR;
++                }
++
++                h->hash = 1;
++                h->key.len = name.len;
++                h->key.data = name.data;
++                h->value.len = value.len;
++                h->value.data = value.data;
++            }
++
++            t++;
++        }
++    }
++
++    return NGX_OK;
++} /* }}} */
++
++static ngx_int_t /* {{{  */
++ngx_http_upload_eval_path(ngx_http_request_t *r) {
++    ngx_http_upload_ctx_t       *u;
++    ngx_http_upload_loc_conf_t  *ulcf;
++    ngx_str_t                   value;
++
++    ulcf = ngx_http_get_module_loc_conf(r, ngx_http_upload_module);
++    u = ngx_http_get_module_ctx(r, ngx_http_upload_module);
++
++    if(ulcf->store_path->is_dynamic) {
++        u->store_path = ngx_pcalloc(r->pool, sizeof(ngx_path_t));
++        if(u->store_path == NULL) {
++            return NGX_ERROR;
++        }
++
++        ngx_memcpy(u->store_path, ulcf->store_path->path, sizeof(ngx_path_t));
++
++        if(ngx_http_complex_value(r, &ulcf->store_path->dynamic, &value) != NGX_OK) {
++            return NGX_ERROR;
++        }
++
++        u->store_path->name.data = value.data;
++        u->store_path->name.len = value.len;
++    }
++    else{
++        u->store_path = ulcf->store_path->path;
++    }
++
++    return NGX_OK;
++} /* }}} */
++
++static ngx_int_t /* {{{  */
++ngx_http_upload_eval_state_path(ngx_http_request_t *r) {
++    ngx_http_upload_ctx_t       *u;
++    ngx_http_upload_loc_conf_t  *ulcf;
++    ngx_str_t                   value;
++
++    ulcf = ngx_http_get_module_loc_conf(r, ngx_http_upload_module);
++    u = ngx_http_get_module_ctx(r, ngx_http_upload_module);
++
++    if(ulcf->state_store_path->is_dynamic) {
++        u->state_store_path = ngx_pcalloc(r->pool, sizeof(ngx_path_t));
++        if(u->store_path == NULL) {
++            return NGX_ERROR;
++        }
++
++        ngx_memcpy(u->state_store_path, ulcf->state_store_path->path, sizeof(ngx_path_t));
++
++        if(ngx_http_complex_value(r, &ulcf->state_store_path->dynamic, &value) != NGX_OK) {
++            return NGX_ERROR;
++        }
++
++        u->state_store_path->name.data = value.data;
++        u->state_store_path->name.len = value.len;
++    }
++    else{
++        u->state_store_path = ulcf->state_store_path->path;
++    }
++
++    return NGX_OK;
++} /* }}} */
++
++static ngx_int_t ngx_http_upload_options_handler(ngx_http_request_t *r) { /* {{{ */
++    ngx_http_upload_loc_conf_t *ulcf;
++
++    ulcf = ngx_http_get_module_loc_conf(r, ngx_http_upload_module);
++
++    r->headers_out.status = NGX_HTTP_OK;
++
++    if(ngx_http_upload_add_headers(r, ulcf) != NGX_OK) {
++        return NGX_HTTP_INTERNAL_SERVER_ERROR;
++    }
++
++    r->header_only = 1;
++    r->headers_out.content_length_n = 0;
++    r->allow_ranges = 0;
++
++    return ngx_http_send_header(r);
++} /* }}} */
++
+ static ngx_int_t ngx_http_upload_body_handler(ngx_http_request_t *r) { /* {{{ */
+     ngx_http_upload_loc_conf_t  *ulcf = ngx_http_get_module_loc_conf(r, ngx_http_upload_module);
+     ngx_http_upload_ctx_t       *ctx = ngx_http_get_module_ctx(r, ngx_http_upload_module);
+@@ -771,6 +1028,10 @@
+     ngx_str_t                   dummy = ngx_string("<ngx_upload_module_dummy>");
+     ngx_table_elt_t             *h;
+ 
++    if(ngx_http_upload_add_headers(r, ulcf) != NGX_OK) {
++        return NGX_HTTP_INTERNAL_SERVER_ERROR;
++    }
++
+     if(ctx->prevent_output) {
+         r->headers_out.status = NGX_HTTP_CREATED;
+ 
+@@ -952,7 +1213,8 @@
+     ngx_http_upload_loc_conf_t  *ulcf = ngx_http_get_module_loc_conf(r, ngx_http_upload_module);
+ 
+     ngx_file_t  *file = &u->output_file;
+-    ngx_path_t  *path = ulcf->store_path;
++    ngx_path_t  *path = u->store_path;
++    ngx_path_t  *state_path = u->state_store_path;
+     uint32_t    n;
+     ngx_uint_t  i;
+     ngx_int_t   rc;
+@@ -992,6 +1254,7 @@
+                            "hashed path: %s", file->name.data);
+ 
+             if(u->partial_content) {
++                ngx_file_t *state_file = &u->state_file;
+                 if(u->merge_buffer == NULL) {
+                     u->merge_buffer = ngx_palloc(r->pool, ulcf->merge_buffer_size);
+ 
+@@ -999,21 +1262,20 @@
+                         return NGX_UPLOAD_NOMEM;
+                 }
+ 
+-                u->state_file.name.len = file->name.len + sizeof(".state") - 1;
+-                u->state_file.name.data = ngx_palloc(u->request->pool, u->state_file.name.len + 1);
++                state_file->name.len = state_path->name.len + 1 + state_path->len + u->session_id.len + sizeof(".state");
++                state_file->name.data = ngx_palloc(u->request->pool, state_file->name.len + 1);
+ 
+-                if(u->state_file.name.data == NULL)
++                if(state_file->name.data == NULL)
+                     return NGX_UPLOAD_NOMEM;
+ 
+-                ngx_memcpy(u->state_file.name.data, file->name.data, file->name.len);
++                ngx_memcpy(state_file->name.data, state_path->name.data, state_path->name.len);
++                (void) ngx_sprintf(state_file->name.data + state_path->name.len + 1 + state_path->len,
++                        "%V.state%Z", &u->session_id);
+ 
+-                /*
+-                 * NOTE: we add terminating zero for system calls
+-                 */
+-                ngx_memcpy(u->state_file.name.data + file->name.len, ".state", sizeof(".state") - 1 + 1);
++                ngx_create_hashed_filename(state_path, state_file->name.data, state_file->name.len);
+ 
+                 ngx_log_debug1(NGX_LOG_DEBUG_CORE, file->log, 0,
+-                               "hashed path of state file: %s", u->state_file.name.data);
++                               "hashed path of state file: %s", state_file->name.data);
+             }
+ 
+             file->fd = ngx_open_file(file->name.data, NGX_FILE_WRONLY, NGX_FILE_CREATE_OR_OPEN, ulcf->store_access);
+@@ -1117,6 +1379,12 @@
+         if(u->sha1_ctx != NULL)
+             SHA1_Init(&u->sha1_ctx->sha1);
+ 
++        if(u->sha256_ctx != NULL)
++            SHA256_Init(&u->sha256_ctx->sha256);
++
++        if(u->sha512_ctx != NULL)
++            SHA512_Init(&u->sha512_ctx->sha512);
++
+         if(u->calculate_crc32)
+             ngx_crc32_init(u->crc32);
+ 
+@@ -1150,7 +1418,10 @@
+ #if (NGX_PCRE)
+                 rc = ngx_regex_exec(f[i].regex, &u->field_name, NULL, 0);
+ 
+-                if (rc != NGX_REGEX_NO_MATCHED && rc < 0) {
++                /* Modified by Naren to work around iMovie and Quicktime which send empty values Added:  &&  u->field_name.len > 0 */
++                if ((ulcf->empty_field_names && rc != NGX_REGEX_NO_MATCHED && rc < 0 && u->field_name.len != 0)
++                    || (!ulcf->empty_field_names && rc != NGX_REGEX_NO_MATCHED && rc < 0))
++                {
+                     return NGX_UPLOAD_SCRIPTERROR;
+                 }
+ 
+@@ -1166,7 +1437,7 @@
+             }
+         }
+ 
+-        if(pass_field && u->field_name.len > 0) { 
++        if(pass_field && u->field_name.len != 0) { 
+             /*
+              * Here we do a small hack: the content of a non-file field
+              * is not known until ngx_http_upload_flush_output_buffer
+@@ -1207,6 +1478,12 @@
+         if(u->sha1_ctx)
+             SHA1_Final(u->sha1_ctx->sha1_digest, &u->sha1_ctx->sha1);
+ 
++        if(u->sha256_ctx)
++            SHA256_Final(u->sha256_ctx->sha256_digest, &u->sha256_ctx->sha256);
++
++        if(u->sha512_ctx)
++            SHA512_Final(u->sha512_ctx->sha512_digest, &u->sha512_ctx->sha512);
++
+         if(u->calculate_crc32)
+             ngx_crc32_final(u->crc32);
+ 
+@@ -1369,6 +1646,12 @@
+         if(u->sha1_ctx)
+             SHA1_Update(&u->sha1_ctx->sha1, buf, len);
+ 
++        if(u->sha256_ctx)
++            SHA256_Update(&u->sha256_ctx->sha256, buf, len);
++
++        if(u->sha512_ctx)
++            SHA512_Update(&u->sha512_ctx->sha512, buf, len);
++
+         if(u->calculate_crc32)
+             ngx_crc32_update(&u->crc32, buf, len);
+ 
+@@ -1678,7 +1961,7 @@
+     ngx_http_upload_merger_state_t ms;
+     off_t        remaining;
+     ssize_t      rc;
+-    int          result;
++    __attribute__((__unused__)) int result;
+     ngx_buf_t    in_buf;
+     ngx_buf_t    out_buf;
+     ngx_http_upload_loc_conf_t  *ulcf = ngx_http_get_module_loc_conf(u->request, ngx_http_upload_module);
+@@ -1799,6 +2082,7 @@
+     conf->forward_args = NGX_CONF_UNSET;
+     conf->tame_arrays = NGX_CONF_UNSET;
+     conf->resumable_uploads = NGX_CONF_UNSET;
++    conf->empty_field_names = NGX_CONF_UNSET;
+ 
+     conf->buffer_size = NGX_CONF_UNSET_SIZE;
+     conf->merge_buffer_size = NGX_CONF_UNSET_SIZE;
+@@ -1809,6 +2093,7 @@
+     conf->limit_rate = NGX_CONF_UNSET_SIZE;
+ 
+     /*
++     * conf->header_templates,
+      * conf->field_templates,
+      * conf->aggregate_field_templates,
+      * and conf->field_filters are
+@@ -1830,27 +2115,15 @@
+     }
+ 
+     if(conf->url.len != 0) {
+-#if defined nginx_version && nginx_version >= 7052
+-        ngx_conf_merge_path_value(cf,
++        ngx_http_upload_merge_path_value(cf,
+                                   &conf->store_path,
+                                   prev->store_path,
+                                   &ngx_http_upload_temp_path);
+ 
+-        ngx_conf_merge_path_value(cf,
++        ngx_http_upload_merge_path_value(cf,
+                                   &conf->state_store_path,
+                                   prev->state_store_path,
+                                   &ngx_http_upload_temp_path);
+-#else
+-        ngx_conf_merge_path_value(conf->store_path,
+-                                  prev->store_path,
+-                                  NGX_HTTP_PROXY_TEMP_PATH, 1, 2, 0,
+-                                  ngx_garbage_collector_temp_handler, cf);
+-
+-        ngx_conf_merge_path_value(conf->state_store_path,
+-                                  prev->state_store_path,
+-                                  NGX_HTTP_PROXY_TEMP_PATH, 1, 2, 0,
+-                                  ngx_garbage_collector_temp_handler, cf);
+-#endif
+     }
+ 
+     ngx_conf_merge_uint_value(conf->store_access,
+@@ -1897,6 +2170,11 @@
+             prev->resumable_uploads : 0;
+     }
+ 
++    if(conf->empty_field_names == NGX_CONF_UNSET) {
++        conf->empty_field_names = (prev->empty_field_names != NGX_CONF_UNSET) ?
++            prev->empty_field_names : 0;
++    }
++
+     if(conf->field_templates == NULL) {
+         conf->field_templates = prev->field_templates;
+     }
+@@ -1912,6 +2190,14 @@
+             conf->sha1 = prev->sha1;
+         }
+ 
++        if(prev->sha256) {
++            conf->sha256 = prev->sha256;
++        }
++
++        if(prev->sha512) {
++            conf->sha512 = prev->sha512;
++        }
++
+         if(prev->crc32) {
+             conf->crc32 = prev->crc32;
+         }
+@@ -1925,6 +2211,10 @@
+         conf->cleanup_statuses = prev->cleanup_statuses;
+     }
+ 
++    if(conf->header_templates == NULL) {
++        conf->header_templates = prev->header_templates;
++    }
++
      return NGX_CONF_OK;
  } /* }}} */
  
+@@ -2066,6 +2356,80 @@
+     return NGX_OK;
+ } /* }}} */
+ 
++static ngx_int_t /* {{{ ngx_http_upload_sha256_variable */
++ngx_http_upload_sha256_variable(ngx_http_request_t *r,
++    ngx_http_variable_value_t *v,  uintptr_t data)
++{
++    ngx_uint_t             i;
++    ngx_http_upload_ctx_t  *u;
++    u_char                 *c;
++    u_char                 *hex_table;
++
++    u = ngx_http_get_module_ctx(r, ngx_http_upload_module);
++
++    if(u->sha256_ctx == NULL || u->partial_content) {
++        v->not_found = 1;
++        return NGX_OK;
++    }
++
++    v->valid = 1;
++    v->no_cacheable = 0;
++    v->not_found = 0;
++
++    hex_table = (u_char*)data;
++    c = u->sha256_ctx->sha256_digest + SHA256_DIGEST_LENGTH * 2;
++
++    i = SHA256_DIGEST_LENGTH;
++
++    do{
++        i--;
++        *--c = hex_table[u->sha256_ctx->sha256_digest[i] & 0xf];
++        *--c = hex_table[u->sha256_ctx->sha256_digest[i] >> 4];
++    }while(i != 0);
++
++    v->data = u->sha256_ctx->sha256_digest;
++    v->len = SHA256_DIGEST_LENGTH * 2;
++
++    return NGX_OK;
++} /* }}} */
++
++static ngx_int_t /* {{{ ngx_http_upload_sha512_variable */
++ngx_http_upload_sha512_variable(ngx_http_request_t *r,
++    ngx_http_variable_value_t *v,  uintptr_t data)
++{
++    ngx_uint_t             i;
++    ngx_http_upload_ctx_t  *u;
++    u_char                 *c;
++    u_char                 *hex_table;
++
++    u = ngx_http_get_module_ctx(r, ngx_http_upload_module);
++
++    if(u->sha512_ctx == NULL || u->partial_content) {
++        v->not_found = 1;
++        return NGX_OK;
++    }
++
++    v->valid = 1;
++    v->no_cacheable = 0;
++    v->not_found = 0;
++
++    hex_table = (u_char*)data;
++    c = u->sha512_ctx->sha512_digest + SHA512_DIGEST_LENGTH * 2;
++
++    i = SHA512_DIGEST_LENGTH;
++
++    do{
++        i--;
++        *--c = hex_table[u->sha512_ctx->sha512_digest[i] & 0xf];
++        *--c = hex_table[u->sha512_ctx->sha512_digest[i] >> 4];
++    }while(i != 0);
++
++    v->data = u->sha512_ctx->sha512_digest;
++    v->len = SHA512_DIGEST_LENGTH * 2;
++
++    return NGX_OK;
++} /* }}} */
++
+ static ngx_int_t /* {{{ ngx_http_upload_crc32_variable */
+ ngx_http_upload_crc32_variable(ngx_http_request_t *r,
+     ngx_http_variable_value_t *v,  uintptr_t data)
+@@ -2299,6 +2663,10 @@
+                                        ", upload_file_md5_uc"
+                                        ", upload_file_sha1"
+                                        ", upload_file_sha1_uc"
++                                       ", upload_file_sha256"
++                                       ", upload_file_sha256_uc"
++                                       ", upload_file_sha512"
++                                       ", upload_file_sha512_uc"
+                                        ", upload_file_crc32"
+                                        ", upload_content_range"
+                                        " and upload_file_size"
+@@ -2312,6 +2680,12 @@
+                 if(v->get_handler == ngx_http_upload_sha1_variable)
+                     ulcf->sha1 = 1;
+ 
++                if(v->get_handler == ngx_http_upload_sha256_variable)
++                    ulcf->sha256 = 1;
++
++                if(v->get_handler == ngx_http_upload_sha512_variable)
++                    ulcf->sha512 = 1;
++
+                 if(v->get_handler == ngx_http_upload_crc32_variable)
+                     ulcf->crc32 = 1;
+             }
+@@ -2396,37 +2770,104 @@
+     return NGX_CONF_OK;
+ } /* }}} */
+ 
+-static char * /* {{{ ngx_http_upload_cleanup */
+-ngx_http_upload_cleanup(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
++static char * /* {{{ ngx_http_upload_add_header */
++ngx_http_upload_add_header(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
+ {
+-    ngx_http_upload_loc_conf_t *ulcf = conf;
+-
+     ngx_str_t                  *value;
+-    ngx_uint_t                 i;
+-    ngx_int_t                  status, lo, hi;
+-    uint16_t                   *s;
++    ngx_http_upload_header_template_t *h;
++    ngx_array_t                 **field;
++    ngx_http_compile_complex_value_t   ccv;
++
++    field = (ngx_array_t**) (((u_char*)conf) + cmd->offset);
+ 
+     value = cf->args->elts;
+ 
+-    if (ulcf->cleanup_statuses == NULL) {
+-        ulcf->cleanup_statuses = ngx_array_create(cf->pool, 1,
+-                                        sizeof(uint16_t));
+-        if (ulcf->cleanup_statuses == NULL) {
++    /*
++     * Add new entry to header template list
++     */
++    if (*field == NULL) {
++        *field = ngx_array_create(cf->pool, 1,
++                                  sizeof(ngx_http_upload_header_template_t));
++        if (*field == NULL) {
+             return NGX_CONF_ERROR;
+         }
+     }
+ 
+-    for (i = 1; i < cf->args->nelts; i++) {
+-        if(value[i].len > 4 && value[i].data[3] == '-') {
+-            lo = ngx_atoi(value[i].data, 3);
+-
+-            if (lo == NGX_ERROR) {
+-                ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
+-                                   "invalid lower bound \"%V\"", &value[i]);
+-                return NGX_CONF_ERROR;
+-            }
+-
+-            hi = ngx_atoi(value[i].data + 4, value[i].len - 4);
++    h = ngx_array_push(*field);
++    if (h == NULL) {
++        return NGX_CONF_ERROR;
++    }
++
++    /*
++     * Compile header name
++     */
++    h->name = ngx_palloc(cf->pool, sizeof(ngx_http_complex_value_t));
++    if(h->name == NULL) {
++        return NGX_CONF_ERROR;
++    }
++
++    ngx_memzero(&ccv, sizeof(ngx_http_compile_complex_value_t));
++
++    ccv.cf = cf;
++    ccv.value = &value[1];
++    ccv.complex_value = h->name;
++
++    if (ngx_http_compile_complex_value(&ccv) != NGX_OK) {
++        return NGX_CONF_ERROR;
++    }
++
++    /*
++     * Compile header value
++     */
++    h->value = ngx_palloc(cf->pool, sizeof(ngx_http_complex_value_t));
++    if(h->value == NULL) {
++        return NGX_CONF_ERROR;
++    }
++
++    ngx_memzero(&ccv, sizeof(ngx_http_compile_complex_value_t));
++
++    ccv.cf = cf;
++    ccv.value = &value[2];
++    ccv.complex_value = h->value;
++
++    if (ngx_http_compile_complex_value(&ccv) != NGX_OK) {
++        return NGX_CONF_ERROR;
++    }
++
++    return NGX_CONF_OK;
++} /* }}} */
++
++static char * /* {{{ ngx_http_upload_cleanup */
++ngx_http_upload_cleanup(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
++{
++    ngx_http_upload_loc_conf_t *ulcf = conf;
++
++    ngx_str_t                  *value;
++    ngx_uint_t                 i;
++    ngx_int_t                  status, lo, hi;
++    uint16_t                   *s;
++
++    value = cf->args->elts;
++
++    if (ulcf->cleanup_statuses == NULL) {
++        ulcf->cleanup_statuses = ngx_array_create(cf->pool, 1,
++                                        sizeof(uint16_t));
++        if (ulcf->cleanup_statuses == NULL) {
++            return NGX_CONF_ERROR;
++        }
++    }
++
++    for (i = 1; i < cf->args->nelts; i++) {
++        if(value[i].len > 4 && value[i].data[3] == '-') {
++            lo = ngx_atoi(value[i].data, 3);
++
++            if (lo == NGX_ERROR) {
++                ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
++                                   "invalid lower bound \"%V\"", &value[i]);
++                return NGX_CONF_ERROR;
++            }
++
++            hi = ngx_atoi(value[i].data + 4, value[i].len - 4);
+ 
+             if (hi == NGX_ERROR) {
+                 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
+@@ -2453,9 +2894,9 @@
+             hi = lo = status;
+         }
+ 
+-        if (lo < 400 || hi > 599) {
++        if (lo < 200 || hi > 599) {
+             ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
+-                               "value(s) \"%V\" must be between 400 and 599",
++                               "value(s) \"%V\" must be between 200 and 599",
+                                &value[i]);
+             return NGX_CONF_ERROR;
+         }
+@@ -2523,6 +2964,665 @@
+     return NGX_CONF_OK;
+ } /* }}} */
+ 
++static char * /* {{{ ngx_http_upload_set_path_slot */
++ngx_http_upload_set_path_slot(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
++{
++    char  *p = conf;
++
++    ssize_t      level;
++    ngx_str_t   *value;
++    ngx_uint_t   i, n;
++    ngx_http_upload_path_t *path, **slot;
++    ngx_http_compile_complex_value_t   ccv;
++
++    slot = (ngx_http_upload_path_t **) (p + cmd->offset);
++
++    if (*slot) {
++        return "is duplicate";
++    }
++
++    path = ngx_pcalloc(cf->pool, sizeof(ngx_http_upload_path_t));
++    if (path == NULL) {
++        return NGX_CONF_ERROR;
++    }
++
++    path->path = ngx_pcalloc(cf->pool, sizeof(ngx_path_t));
++    if (path->path == NULL) {
++        return NGX_CONF_ERROR;
++    }
++
++    value = cf->args->elts;
++
++    path->path->name = value[1];
++
++    if (path->path->name.data[path->path->name.len - 1] == '/') {
++        path->path->name.len--;
++    }
++
++    if (ngx_conf_full_name(cf->cycle, &path->path->name, 0) != NGX_OK) {
++        return NULL;
++    }
++
++    path->path->len = 0;
++    path->path->manager = NULL;
++    path->path->loader = NULL;
++    path->path->conf_file = cf->conf_file->file.name.data;
++    path->path->line = cf->conf_file->line;
++
++    for (i = 0, n = 2; n < cf->args->nelts; i++, n++) {
++        level = ngx_atoi(value[n].data, value[n].len);
++        if (level == NGX_ERROR || level == 0) {
++            return "invalid value";
++        }
++
++        path->path->level[i] = level;
++        path->path->len += level + 1;
++    }
++
++    while (i < 3) {
++        path->path->level[i++] = 0;
++    }
++
++    *slot = path;
++
++    if(ngx_http_script_variables_count(&value[1])) {
++        ngx_memzero(&ccv, sizeof(ngx_http_compile_complex_value_t));
++
++        ccv.cf = cf;
++        ccv.value = &value[1];
++        ccv.complex_value = &path->dynamic;
++
++        if (ngx_http_compile_complex_value(&ccv) != NGX_OK) {
++            return NGX_CONF_ERROR;
++        }
++
++        path->is_dynamic = 1;
++    }
++    else {
++        if (ngx_add_path(cf, &path->path) == NGX_ERROR) {
++            return NGX_CONF_ERROR;
++        }
++    }
++
++    return NGX_CONF_OK;
++} /* }}} */
++
++
++static char * /* {{{ ngx_http_upload_merge_path_value */
++ngx_http_upload_merge_path_value(ngx_conf_t *cf, ngx_http_upload_path_t **path, ngx_http_upload_path_t *prev,
++    ngx_path_init_t *init)
++{
++    if (*path) {
++        return NGX_CONF_OK;
++    }
++
++    if (prev) {
++        *path = prev;
++        return NGX_CONF_OK;
++    }
++
++    *path = ngx_palloc(cf->pool, sizeof(ngx_http_upload_path_t));
++    if(*path == NULL) {
++        return NGX_CONF_ERROR;
++    }
++
++    (*path)->path = ngx_pcalloc(cf->pool, sizeof(ngx_path_t));
++    if((*path)->path == NULL) {
++        return NGX_CONF_ERROR;
++    }
++
++    (*path)->path->name = init->name;
++
++    if(ngx_conf_full_name(cf->cycle, &(*path)->path->name, 0) != NGX_OK) {
++        return NGX_CONF_ERROR;
++    }
++
++    (*path)->path->level[0] = init->level[0];
++    (*path)->path->level[1] = init->level[1];
++    (*path)->path->level[2] = init->level[2];
++
++    (*path)->path->len = init->level[0] + (init->level[0] ? 1 : 0)
++                   + init->level[1] + (init->level[1] ? 1 : 0)
++                   + init->level[2] + (init->level[2] ? 1 : 0);
++
++    (*path)->path->manager = NULL;
++    (*path)->path->loader = NULL;
++    (*path)->path->conf_file = NULL;
++
++    if(ngx_add_path(cf, &(*path)->path) != NGX_OK) {
++        return NGX_CONF_ERROR;
++    }
++
++    return NGX_CONF_OK;
++} /* }}} */
++
 +static ngx_int_t
 +ngx_http_write_request_body(ngx_http_request_t *r)
 +{
@@ -549,11 +1530,10 @@
 +}
 +
 +
-+
  ngx_int_t /* {{{ ngx_http_read_upload_client_request_body */
  ngx_http_read_upload_client_request_body(ngx_http_request_t *r) {
      ssize_t                    size, preread;
-@@ -2625,9 +3164,9 @@
+@@ -2625,9 +3725,9 @@
  
              /* the whole request body may be placed in r->header_in */
  
@@ -566,34 +1546,37 @@
  
              return ngx_http_do_read_upload_client_request_body(r);
          }
-@@ -2684,7 +3223,7 @@
+@@ -2684,7 +3784,9 @@
  
      *next = cl;
  
 -    rb->to_write = rb->bufs;
-+    /* rb->to_write = rb->bufs; */
++    /*
++     * rb->to_write = rb->bufs;
++     */
  
      r->read_event_handler = ngx_http_read_upload_client_request_body_handler;
  
-@@ -2766,7 +3305,7 @@
+@@ -2766,7 +3868,7 @@
          for ( ;; ) {
              if (rb->buf->last == rb->buf->end) {
  
 -                rc = ngx_http_process_request_body(r, rb->to_write);
-+                rc = ngx_http_process_request_body(r, rb->bufs);
++                 rc = ngx_http_process_request_body(r, rb->bufs);
  
                  switch(rc) {
                      case NGX_OK:
-@@ -2782,7 +3321,7 @@
+@@ -2781,8 +3883,7 @@
+                     default:
                          return NGX_HTTP_INTERNAL_SERVER_ERROR;
                  }
- 
+-
 -                rb->to_write = rb->bufs->next ? rb->bufs->next : rb->bufs;
-+                /* rb->to_write = rb->bufs->next ? rb->bufs->next : rb->bufs; */
++                rb->bufs = rb->bufs->next ? rb->bufs->next : rb->bufs;
                  rb->buf->last = rb->buf->start;
              }
  
-@@ -2874,7 +3413,7 @@
+@@ -2874,7 +3975,7 @@
          ngx_del_timer(c->read);
      }
  
@@ -602,3 +1585,74 @@
  
      switch(rc) {
          case NGX_OK:
+@@ -3299,6 +4400,14 @@
+                     return NGX_HTTP_REQUEST_ENTITY_TOO_LARGE;
+                 }
+ 
++                if( (upload_ctx->content_range_n.end - upload_ctx->content_range_n.start + 1)
++                    != headers_in->content_length_n) 
++                {
++                    ngx_log_error(NGX_LOG_ERR, upload_ctx->log, 0,
++                                  "range length is not equal to content length");
++                    return NGX_HTTP_RANGE_NOT_SATISFIABLE;
++                }
++
+                 upload_ctx->partial_content = 1;
+             }
+         }
+@@ -3436,8 +4545,8 @@
+         return NGX_ERROR;
+     }
+ 
+-    if(range_n->start >= range_n->end || range_n->start >= range_n->total
+-        || range_n->end > range_n->total)
++    if(range_n->start > range_n->end || range_n->start >= range_n->total
++        || range_n->end >= range_n->total)
+     {
+         return NGX_ERROR;
+     }
+@@ -3673,3 +4782,43 @@
+     }
+ } /* }}} */
+ 
++static ngx_int_t /* {{{ */
++ngx_http_upload_test_expect(ngx_http_request_t *r)
++{
++    ngx_int_t   n;
++    ngx_str_t  *expect;
++
++    if (r->expect_tested
++        || r->headers_in.expect == NULL
++        || r->http_version < NGX_HTTP_VERSION_11)
++    {
++        return NGX_OK;
++    }
++
++    r->expect_tested = 1;
++
++    expect = &r->headers_in.expect->value;
++
++    if (expect->len != sizeof("100-continue") - 1
++        || ngx_strncasecmp(expect->data, (u_char *) "100-continue",
++                           sizeof("100-continue") - 1)
++           != 0)
++    {
++        return NGX_OK;
++    }
++
++    ngx_log_debug0(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
++                   "send 100 Continue");
++
++    n = r->connection->send(r->connection,
++                            (u_char *) "HTTP/1.1 100 Continue" CRLF CRLF,
++                            sizeof("HTTP/1.1 100 Continue" CRLF CRLF) - 1);
++
++    if (n == sizeof("HTTP/1.1 100 Continue" CRLF CRLF) - 1) {
++        return NGX_OK;
++    }
++
++    /* we assume that such small packet should be send successfully */
++
++    return NGX_ERROR;
++} /* }}} */
+


Property changes on: trunk/www/nginx/files/extra-patch-ngx_http_upload_module.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1
\ No newline at end of property
Index: trunk/www/nginx/files/extra-patch-ngx_http_upstream.h
===================================================================
--- trunk/www/nginx/files/extra-patch-ngx_http_upstream.h	2014-04-22 11:33:31 UTC (rev 16359)
+++ trunk/www/nginx/files/extra-patch-ngx_http_upstream.h	2014-04-22 11:39:14 UTC (rev 16360)

Property changes on: trunk/www/nginx/files/extra-patch-ngx_http_upstream.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1
\ No newline at end of property
Index: trunk/www/nginx/files/extra-patch-ngx_postgres-config
===================================================================
--- trunk/www/nginx/files/extra-patch-ngx_postgres-config	2014-04-22 11:33:31 UTC (rev 16359)
+++ trunk/www/nginx/files/extra-patch-ngx_postgres-config	2014-04-22 11:39:14 UTC (rev 16360)

Property changes on: trunk/www/nginx/files/extra-patch-ngx_postgres-config
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1
\ No newline at end of property
Modified: trunk/www/nginx/files/extra-patch-passenger-build-nginx.rb
===================================================================
--- trunk/www/nginx/files/extra-patch-passenger-build-nginx.rb	2014-04-22 11:33:31 UTC (rev 16359)
+++ trunk/www/nginx/files/extra-patch-passenger-build-nginx.rb	2014-04-22 11:39:14 UTC (rev 16360)
@@ -1,18 +1,20 @@
---- ../passenger-4.0.10/build/nginx.rb.orig	2013-05-28 01:13:38.000000000 +0400
-+++ ../passenger-4.0.10/build/nginx.rb	2013-05-28 19:21:20.000000000 +0400
-@@ -24,14 +24,11 @@
+--- ../passenger-4.0.35/build/nginx.rb.orig	2013-10-12 11:05:08.000000000 +0400
++++ ../passenger-4.0.35/build/nginx.rb	2013-10-12 11:06:18.000000000 +0400
+@@ -32,16 +32,12 @@
  desc "Build Nginx support files"
  task :nginx => [
  	:nginx_without_native_support,
-+	LIBBOOST_OXT,
++        LIBBOOST_OXT,
  	NATIVE_SUPPORT_TARGET
  ].compact
  
  task :nginx_without_native_support => [
+ 	auto_generated_sources,
 -	AGENT_OUTPUT_DIR + 'PassengerHelperAgent',
 -	AGENT_OUTPUT_DIR + 'PassengerWatchdog',
 -	AGENT_OUTPUT_DIR + 'PassengerLoggingAgent',
 -	AGENT_OUTPUT_DIR + 'SpawnPreparer',
+-	AGENT_OUTPUT_DIR + 'TempDirToucher',
  	COMMON_LIBRARY.only(*NGINX_LIBS_SELECTOR).link_objects
  ].flatten
  


Property changes on: trunk/www/nginx/files/extra-patch-passenger-build-nginx.rb
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1
\ No newline at end of property
Modified: trunk/www/nginx/files/extra-patch-syslog_support
===================================================================
--- trunk/www/nginx/files/extra-patch-syslog_support	2014-04-22 11:33:31 UTC (rev 16359)
+++ trunk/www/nginx/files/extra-patch-syslog_support	2014-04-22 11:39:14 UTC (rev 16360)
@@ -347,7 +347,7 @@
 index 3233647..5e7fdbf 100644
 --- src/core/ngx_log.h
 +++ src/core/ngx_log.h
-@@ -12,6 +12,13 @@
+@@ -12,6 +12,15 @@
  #include <ngx_config.h>
  #include <ngx_core.h>
  
@@ -354,7 +354,9 @@
 +#if (NGX_ENABLE_SYSLOG)
 +#include <syslog.h>
 +
++#ifndef SYSLOG_FACILITY
 +#define SYSLOG_FACILITY LOG_LOCAL5
++#endif
 +#define ERR_SYSLOG_PRIORITY LOG_ERR
 +#endif
 +
@@ -721,7 +723,7 @@
 +    SYSLOG_FACILITY="LOG_DAEMON"
 +fi
 +if test "${USE_SYSLOG}" = "YES"; then
-+    CFLAGS="$CFLAGS -DUSE_SYSLOG -DSYSLOG_FACILITY=${SYSLOG_FACILITY}"
++    CFLAGS="$CFLAGS -DNGX_ENABLE_SYSLOG -DSYSLOG_FACILITY=${SYSLOG_FACILITY}"
 +fi
  
  cat << END                                                     > $NGX_MAKEFILE


Property changes on: trunk/www/nginx/files/extra-patch-syslog_support
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1
\ No newline at end of property
Index: trunk/www/nginx/files/nginx.in
===================================================================
--- trunk/www/nginx/files/nginx.in	2014-04-22 11:33:31 UTC (rev 16359)
+++ trunk/www/nginx/files/nginx.in	2014-04-22 11:39:14 UTC (rev 16360)

Property changes on: trunk/www/nginx/files/nginx.in
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1
\ No newline at end of property
Index: trunk/www/nginx/files/patch-conf-nginx.conf
===================================================================
--- trunk/www/nginx/files/patch-conf-nginx.conf	2014-04-22 11:33:31 UTC (rev 16359)
+++ trunk/www/nginx/files/patch-conf-nginx.conf	2014-04-22 11:39:14 UTC (rev 16360)

Property changes on: trunk/www/nginx/files/patch-conf-nginx.conf
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1
\ No newline at end of property
Index: trunk/www/nginx/pkg-descr
===================================================================
--- trunk/www/nginx/pkg-descr	2014-04-22 11:33:31 UTC (rev 16359)
+++ trunk/www/nginx/pkg-descr	2014-04-22 11:39:14 UTC (rev 16360)

Property changes on: trunk/www/nginx/pkg-descr
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1
\ No newline at end of property


More information about the Midnightbsd-cvs mailing list