]> granicus.if.org Git - php/commitdiff
MFB
authorNuno Lopes <nlopess@php.net>
Sat, 17 Jun 2006 11:14:21 +0000 (11:14 +0000)
committerNuno Lopes <nlopess@php.net>
Sat, 17 Jun 2006 11:14:21 +0000 (11:14 +0000)
configure.in
sapi/cgi/cgi_main.c

index 98c50b73a29fd5652125d091544ae0530ff56b74..9bb0b787245ab2f76c93dc7c55f063d48de591d2 100644 (file)
@@ -502,6 +502,7 @@ scandir \
 setitimer \
 setlocale \
 localeconv \
+setenv \
 setpgid \
 setsockopt \
 setvbuf \
index a1ea67bddc7649dac569a85e2dcce09f33d1407b..fed17648b04cdc01da0f463d1c715e87f48f7c5f 100644 (file)
@@ -385,6 +385,18 @@ static char *_sapi_cgibin_putenv(char *name, char *value TSRMLS_DC)
                return fcgi_putenv(request, name, name_len, value);
        }
 
+#if HAVE_SETENV
+       if (value) {
+               setenv(name, value, 1);
+       }
+#endif
+#if HAVE_UNSETENV
+       if (!value) {
+               unsetenv(name);
+       }
+#endif
+
+#if !HAVE_SETENV || !HAVE_UNSETENV
        /*  if cgi, or fastcgi and not found in fcgi env
                check the regular environment 
                this leaks, but it's only cgi anyway, we'll fix
@@ -395,12 +407,19 @@ static char *_sapi_cgibin_putenv(char *name, char *value TSRMLS_DC)
        if (buf == NULL) {
                return getenv(name);
        }
+#endif
+#if !HAVE_SETENV
        if (value) {
                len = snprintf(buf, len - 1, "%s=%s", name, value);
-       } else {
+               putenv(buf);
+       }
+#endif
+#if !HAVE_UNSETENV
+       if (!value) {
                len = snprintf(buf, len - 1, "%s=", name);
+               putenv(buf);
        }
-       putenv(buf);
+#endif
        return getenv(name);
 }