view auto/lib/perl/make @ 7042:bd2f97a3aecc

Upstream: introduced ngx_http_upstream_ssl_handshake_handler(). This change reworks 13a5f4765887 to only run posted requests once, with nothing on stack. Running posted requests with other request functions on stack may result in use-after-free in case of errors, similar to the one reported in #788. To only run posted request once, a separate function was introduced to be used as ssl handshake handler in c->ssl->handler, ngx_http_upstream_ssl_handshake_handler(). The ngx_http_run_posted_requests() is only called in this function, and not in ngx_http_upstream_ssl_handshake() which may be called directly on stack. Additionaly, ngx_http_upstream_ssl_handshake_handler() now does appropriate debug logging of the current subrequest, similar to what is done in other event handlers.
author Maxim Dounin <mdounin@mdounin.ru>
date Thu, 22 Jun 2017 21:09:06 +0300
parents 53ea5694d1cc
children
line wrap: on
line source


# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.


cat << END                                                    >> $NGX_MAKEFILE

$NGX_OBJS/src/http/modules/perl/ngx_http_perl_module.o: \\
		$NGX_OBJS/$ngx_perl_module

$NGX_OBJS/$ngx_perl_module: \\
		\$(CORE_DEPS) \$(HTTP_DEPS) \\
		src/http/modules/perl/ngx_http_perl_module.h \\
		$NGX_OBJS/src/http/modules/perl/Makefile
	cd $NGX_OBJS/src/http/modules/perl && \$(MAKE)

	rm -rf $NGX_OBJS/install_perl


$NGX_OBJS/src/http/modules/perl/Makefile: \\
		$NGX_AUTO_CONFIG_H \\
		src/core/nginx.h \\
		src/http/modules/perl/Makefile.PL \\
		src/http/modules/perl/nginx.pm \\
		src/http/modules/perl/nginx.xs \\
		src/http/modules/perl/typemap
	grep 'define NGINX_VERSION' src/core/nginx.h \\
		| sed -e 's/^.*"\(.*\)".*/\1/' > \\
		$NGX_OBJS/src/http/modules/perl/version
	sed "s/%%VERSION%%/\`cat $NGX_OBJS/src/http/modules/perl/version\`/" \\
		src/http/modules/perl/nginx.pm > \\
		$NGX_OBJS/src/http/modules/perl/nginx.pm
	cp -p src/http/modules/perl/nginx.xs $NGX_OBJS/src/http/modules/perl/
	cp -p src/http/modules/perl/typemap $NGX_OBJS/src/http/modules/perl/
	cp -p src/http/modules/perl/Makefile.PL $NGX_OBJS/src/http/modules/perl/

	cd $NGX_OBJS/src/http/modules/perl \\
		&& NGX_PM_CFLAGS="\$(NGX_PM_CFLAGS) -g $NGX_CC_OPT" \\
			NGX_PM_LDFLAGS="$NGX_LD_OPT \$(NGX_PM_LDFLAGS)" \\
			NGX_INCS="$CORE_INCS $NGX_OBJS $HTTP_INCS" \\
			NGX_DEPS="\$(CORE_DEPS) \$(HTTP_DEPS)" \\
		$NGX_PERL Makefile.PL \\
			LIB=$NGX_PERL_MODULES \\
			INSTALLSITEMAN3DIR=$NGX_PERL_MODULES_MAN

END