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.
This commit is contained in:
Sascha Schumann 2003-01-21 11:03:58 +00:00
parent 961c9856ef
commit 294e776d95
3 changed files with 46 additions and 1 deletions

View File

@ -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

View File

@ -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);
};

View File

@ -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
};
/* }}} */