summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--main/SAPI.c20
-rw-r--r--main/SAPI.h6
-rw-r--r--sapi/apache/mod_php4.c21
3 files changed, 46 insertions, 1 deletions
diff --git a/main/SAPI.c b/main/SAPI.c
index a11f98c953..d23ec9a4ef 100644
--- a/main/SAPI.c
+++ b/main/SAPI.c
@@ -869,6 +869,26 @@ SAPI_API int sapi_force_http_10(TSRMLS_D)
}
}
+
+SAPI_API int sapi_get_target_uid(uid_t *obj TSRMLS_DC)
+{
+ if (sapi_module.get_target_uid) {
+ return sapi_module.get_target_uid(obj TSRMLS_CC);
+ } else {
+ return -1;
+ }
+}
+
+SAPI_API int sapi_get_target_gid(gid_t *obj TSRMLS_DC)
+{
+ if (sapi_module.get_target_gid) {
+ return sapi_module.get_target_gid(obj TSRMLS_CC);
+ } else {
+ return -1;
+ }
+}
+
+
/*
* Local variables:
* tab-width: 4
diff --git a/main/SAPI.h b/main/SAPI.h
index 81235574ca..75c80fae41 100644
--- a/main/SAPI.h
+++ b/main/SAPI.h
@@ -190,6 +190,9 @@ SAPI_API void sapi_activate_headers_only(TSRMLS_D);
SAPI_API int sapi_get_fd(int *fd TSRMLS_DC);
SAPI_API int sapi_force_http_10(TSRMLS_D);
+SAPI_API int sapi_get_target_uid(uid_t * TSRMLS_DC);
+SAPI_API int sapi_get_target_gid(gid_t * TSRMLS_DC);
+
struct _sapi_module_struct {
char *name;
char *pretty_name;
@@ -231,6 +234,9 @@ struct _sapi_module_struct {
int (*get_fd)(int *fd TSRMLS_DC);
int (*force_http_10)(TSRMLS_D);
+
+ int (*get_target_uid)(uid_t * TSRMLS_DC);
+ int (*get_target_gid)(gid_t * TSRMLS_DC);
};
diff --git a/sapi/apache/mod_php4.c b/sapi/apache/mod_php4.c
index 0f9eaeb074..0a14fd6804 100644
--- a/sapi/apache/mod_php4.c
+++ b/sapi/apache/mod_php4.c
@@ -20,6 +20,7 @@
/* $Id$ */
#include "php_apache_http.h"
+#include "http_conf_globals.h"
#ifdef NETWARE
#define SIGPIPE SIGINT
@@ -371,6 +372,22 @@ static int sapi_apache_force_http_10(TSRMLS_D)
return 0;
}
+/* {{{ sapi_apache_get_target_uid
+ */
+static int sapi_apache_get_target_uid(uid_t *obj TSRMLS_DC)
+{
+ *obj = ap_user_id;
+ return 0;
+}
+
+/* {{{ sapi_apache_get_target_gid
+ */
+static int sapi_apache_get_target_gid(gid_t *obj TSRMLS_DC)
+{
+ *obj = ap_group_id;
+ return 0;
+}
+
/* {{{ sapi_module_struct apache_sapi_module
*/
static sapi_module_struct apache_sapi_module = {
@@ -415,7 +432,9 @@ static sapi_module_struct apache_sapi_module = {
NULL, /* exe location */
0, /* ini ignore */
sapi_apache_get_fd,
- sapi_apache_force_http_10
+ sapi_apache_force_http_10,
+ sapi_apache_get_target_uid,
+ sapi_apache_get_target_gid
};
/* }}} */