mirror of
https://github.com/php/php-src.git
synced 2024-09-21 18:07:23 +00:00
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:
parent
961c9856ef
commit
294e776d95
20
main/SAPI.c
20
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
|
||||
|
@ -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);
|
||||
};
|
||||
|
||||
|
||||
|
@ -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
|
||||
};
|
||||
/* }}} */
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user