summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/standard/basic_functions.c49
-rw-r--r--main/SAPI.c12
-rw-r--r--main/SAPI.h2
-rw-r--r--sapi/aolserver/aolserver.c1
-rw-r--r--sapi/apache/mod_php4.c10
-rw-r--r--sapi/cgi/cgi_main.c1
-rw-r--r--sapi/isapi/php4isapi.c1
-rw-r--r--sapi/phttpd/phttpd.c3
-rw-r--r--sapi/roxen/roxen.c1
-rw-r--r--sapi/servlet/servlet.c1
-rw-r--r--sapi/thttpd/thttpd.c1
11 files changed, 42 insertions, 40 deletions
diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c
index 53204b665f..2309df2db2 100644
--- a/ext/standard/basic_functions.c
+++ b/ext/standard/basic_functions.c
@@ -482,53 +482,26 @@ PHP_RSHUTDOWN_FUNCTION(basic)
PHP_FUNCTION(getenv)
{
-#if FHTTPD
- int i;
-#endif
pval **str;
char *ptr;
-#if APACHE
- SLS_FETCH();
-#endif
+
if (ARG_COUNT(ht) != 1 || zend_get_parameters_ex(1, &str) == FAILURE) {
WRONG_PARAM_COUNT;
}
convert_to_string_ex(str);
-#if FHTTPD
- ptr=NULL;
- if ((*str)->type == IS_STRING && req){
- for(i=0;i<req->nlines;i++){
- if (req->lines[i].paramc>1){
- if (req->lines[i].params[0]){
- if (!strcmp(req->lines[i].params[0],
- (*str)->value.str.val)){
- ptr=req->lines[i].params[1];
- i=req->nlines;
- }
- }
- }
- }
+ if ((*str)->type != IS_STRING) {
+ RETURN_FALSE;
}
- if (!ptr) ptr = getenv((*str)->value.str.val);
- if (ptr
-#else
-
- if ((*str)->type == IS_STRING &&
-#if APACHE
- ((ptr = (char *)table_get(((request_rec *) SG(server_context))->subprocess_env, (*str)->value.str.val)) || (ptr = getenv((*str)->value.str.val)))
-#endif
-#if CGI_BINARY
- (ptr = getenv((*str)->value.str.val))
-#endif
-
-#if USE_SAPI
- (ptr = sapi_rqst->getenv(sapi_rqst->scid,(*str)->value.str.val))
-#endif
-#endif
- ) {
- RETURN_STRING(ptr,1);
+
+
+ ptr = sapi_getenv((*str)->value.str.val, (*str)->value.str.len);
+ if (!ptr) {
+ ptr = getenv((*str)->value.str.val);
+ }
+ if (ptr) {
+ RETURN_STRING(ptr, 1);
}
RETURN_FALSE;
}
diff --git a/main/SAPI.c b/main/SAPI.c
index e1b329daee..7f8f568692 100644
--- a/main/SAPI.c
+++ b/main/SAPI.c
@@ -402,3 +402,15 @@ SAPI_API int sapi_get_uid()
return statbuf.st_uid;
}
}
+
+
+SAPI_API char *sapi_getenv(char *name, int name_len)
+{
+ if (sapi_module.getenv) {
+ SLS_FETCH();
+
+ return sapi_module.getenv(name, name_len SLS_CC);
+ } else {
+ return NULL;
+ }
+} \ No newline at end of file
diff --git a/main/SAPI.h b/main/SAPI.h
index 2b65a1a7a7..88554cf18a 100644
--- a/main/SAPI.h
+++ b/main/SAPI.h
@@ -128,6 +128,7 @@ SAPI_API int sapi_register_default_post_reader(void (*default_post_reader)(char
SAPI_API int sapi_flush();
SAPI_API int sapi_get_uid();
+SAPI_API char *sapi_getenv(char *name, int name_len);
struct _sapi_module_struct {
char *name;
@@ -141,6 +142,7 @@ struct _sapi_module_struct {
int (*ub_write)(const char *str, unsigned int str_length);
void (*flush)(void *server_context);
int (*get_uid)(SLS_D);
+ char *(*getenv)(char *name, int name_len SLS_DC);
void (*sapi_error)(int type, const char *error_msg, ...);
diff --git a/sapi/aolserver/aolserver.c b/sapi/aolserver/aolserver.c
index d1b5dc86d8..a7d200754e 100644
--- a/sapi/aolserver/aolserver.c
+++ b/sapi/aolserver/aolserver.c
@@ -303,6 +303,7 @@ static sapi_module_struct sapi_module = {
php_ns_sapi_ub_write, /* unbuffered write */
NULL, /* flush */
NULL, /* get uid */
+ NULL, /* getenv */
php_error, /* error handler */
diff --git a/sapi/apache/mod_php4.c b/sapi/apache/mod_php4.c
index edf848dd6a..7a9cb0ee94 100644
--- a/sapi/apache/mod_php4.c
+++ b/sapi/apache/mod_php4.c
@@ -306,6 +306,14 @@ static int php_apache_get_uid(SLS_D)
}
+static char *php_apache_getenv(char *name, int name_len SLS_DC)
+{
+ char *value;
+
+ return (char *) table_get(((request_rec *) SG(server_context))->subprocess_env, name));
+}
+
+
static sapi_module_struct sapi_module = {
"Apache", /* name */
@@ -318,7 +326,7 @@ static sapi_module_struct sapi_module = {
sapi_apache_ub_write, /* unbuffered write */
sapi_apache_flush, /* flush */
php_apache_get_uid, /* get uid */
-
+ php_apache_getenv, /* getenv */
php_error, /* error handler */
diff --git a/sapi/cgi/cgi_main.c b/sapi/cgi/cgi_main.c
index bf6138cd3c..db0c5cda52 100644
--- a/sapi/cgi/cgi_main.c
+++ b/sapi/cgi/cgi_main.c
@@ -189,6 +189,7 @@ static sapi_module_struct sapi_module = {
sapi_cgibin_ub_write, /* unbuffered write */
sapi_cgibin_flush, /* flush */
NULL, /* get uid */
+ NULL, /* getenv */
php_error, /* error handler */
diff --git a/sapi/isapi/php4isapi.c b/sapi/isapi/php4isapi.c
index 8c4ff5c695..9f71738211 100644
--- a/sapi/isapi/php4isapi.c
+++ b/sapi/isapi/php4isapi.c
@@ -351,6 +351,7 @@ static sapi_module_struct sapi_module = {
sapi_isapi_ub_write, /* unbuffered write */
NULL, /* flush */
NULL, /* get uid */
+ NULL, /* getenv */
php_error, /* error handler */
diff --git a/sapi/phttpd/phttpd.c b/sapi/phttpd/phttpd.c
index 76184a7e7a..194cf9ebf5 100644
--- a/sapi/phttpd/phttpd.c
+++ b/sapi/phttpd/phttpd.c
@@ -173,7 +173,8 @@ static sapi_module_struct sapi_module = {
php_phttpd_sapi_ub_write, /* unbuffered write */
NULL, /* flush */
NULL, /* get uid */
-
+ NULL, /* getenv */
+
php_error, /* error handler */
php_phttpd_sapi_header_handler, /* header handler */
diff --git a/sapi/roxen/roxen.c b/sapi/roxen/roxen.c
index 1d4f920e44..0b87ed855e 100644
--- a/sapi/roxen/roxen.c
+++ b/sapi/roxen/roxen.c
@@ -527,6 +527,7 @@ static sapi_module_struct sapi_module = {
php_roxen_sapi_ub_write, /* unbuffered write */
NULL, /* flush */
NULL, /* get uid */
+ NULL, /* getenv */
php_error, /* error handler */
diff --git a/sapi/servlet/servlet.c b/sapi/servlet/servlet.c
index 4ba10f9d13..bc80e0f3be 100644
--- a/sapi/servlet/servlet.c
+++ b/sapi/servlet/servlet.c
@@ -222,6 +222,7 @@ static sapi_module_struct sapi_module = {
sapi_servlet_ub_write, /* unbuffered write */
NULL, /* flush */
NULL, /* get uid */
+ NULL, /* getenv */
php_error, /* error handler */
diff --git a/sapi/thttpd/thttpd.c b/sapi/thttpd/thttpd.c
index 4fab0c2abf..236439e4e3 100644
--- a/sapi/thttpd/thttpd.c
+++ b/sapi/thttpd/thttpd.c
@@ -113,6 +113,7 @@ static sapi_module_struct sapi_module = {
sapi_thttpd_ub_write,
NULL,
NULL, /* get uid */
+ NULL, /* getenv */
php_error,