From: Sascha Schumann Date: Tue, 21 Jan 2003 11:03:58 +0000 (+0000) Subject: add sapi_get_target_uid/_gid for obtaining information about the X-Git-Tag: PHP_5_0_dev_before_13561_fix~103 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=294e776d950f7393faad5a96988c5122edf23e66;p=php add sapi_get_target_uid/_gid for obtaining information about the non-privileged user the web server is running as. this is useful for creating shared memory segments which need to be accessed by the child processes/threads. --- 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 }; /* }}} */