Welcome! Log In Create A New Profile

Advanced

[nginx] Perl: removed special environment handling for the perl module.

Maxim Dounin
December 07, 2016 12:50PM
details: http://hg.nginx.org/nginx/rev/30b6f1ff192b
branches:
changeset: 6821:30b6f1ff192b
user: Maxim Dounin <mdounin@mdounin.ru>
date: Wed Dec 07 19:03:26 2016 +0300
description:
Perl: removed special environment handling for the perl module.

In Perl 5.8.6 the default was switched to use putenv() when used as
embedded library unless "PL_use_safe_putenv = 0" is explicitly used
in the code. Therefore, for modern versions of Perl it is no longer
necessary to restore previous environment when calling perl_destruct().

diffstat:

auto/lib/perl/conf | 6 +++---
src/core/ngx_cycle.c | 13 +------------
2 files changed, 4 insertions(+), 15 deletions(-)

diffs (57 lines):

diff --git a/auto/lib/perl/conf b/auto/lib/perl/conf
--- a/auto/lib/perl/conf
+++ b/auto/lib/perl/conf
@@ -12,9 +12,9 @@ NGX_PERL_VER=`$NGX_PERL -v 2>&1 | grep '
if test -n "$NGX_PERL_VER"; then
echo " + perl version: $NGX_PERL_VER"

- if [ "`$NGX_PERL -e 'use 5.006001; print "OK"'`" != "OK" ]; then
+ if [ "`$NGX_PERL -e 'use 5.008006; print "OK"'`" != "OK" ]; then
echo
- echo "$0: error: perl 5.6.1 or higher is required"
+ echo "$0: error: perl 5.8.6 or higher is required"
echo

exit 1;
@@ -76,7 +76,7 @@ if test -n "$NGX_PERL_VER"; then

else
echo
- echo "$0: error: perl 5.6.1 or higher is required"
+ echo "$0: error: perl 5.8.6 or higher is required"
echo

exit 1;
diff --git a/src/core/ngx_cycle.c b/src/core/ngx_cycle.c
--- a/src/core/ngx_cycle.c
+++ b/src/core/ngx_cycle.c
@@ -37,7 +37,7 @@ ngx_cycle_t *
ngx_init_cycle(ngx_cycle_t *old_cycle)
{
void *rv;
- char **senv, **env;
+ char **senv;
ngx_uint_t i, n;
ngx_log_t *log;
ngx_time_t *tp;
@@ -750,20 +750,9 @@ old_shm_zone_done:

if (ngx_process == NGX_PROCESS_MASTER || ngx_is_init_cycle(old_cycle)) {

- /*
- * perl_destruct() frees environ, if it is not the same as it was at
- * perl_construct() time, therefore we save the previous cycle
- * environment before ngx_conf_parse() where it will be changed.
- */
-
- env = environ;
- environ = senv;
-
ngx_destroy_pool(old_cycle->pool);
cycle->old_cycle = NULL;

- environ = env;
-
return cycle;
}

_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel
Subject Author Views Posted

[nginx] Perl: removed special environment handling for the perl module.

Maxim Dounin 351 December 07, 2016 12:50PM



Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 216
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready