diff options
| author | Ilia Alshanetsky <iliaa@php.net> | 2006-06-19 02:19:13 +0000 |
|---|---|---|
| committer | Ilia Alshanetsky <iliaa@php.net> | 2006-06-19 02:19:13 +0000 |
| commit | 3b7be889d89076b1bdddee1ff46d980112ff1902 (patch) | |
| tree | 93a2b84495de3651bb553b602a6b9e92b9364070 /ext | |
| parent | aae5df3ffdf31e0ddb294cf588b15cd18514f99d (diff) | |
| download | php-git-3b7be889d89076b1bdddee1ff46d980112ff1902.tar.gz | |
Added posix_initgroups() function.
Diffstat (limited to 'ext')
| -rw-r--r-- | ext/posix/config.m4 | 2 | ||||
| -rw-r--r-- | ext/posix/php_posix.h | 4 | ||||
| -rw-r--r-- | ext/posix/posix.c | 19 |
3 files changed, 24 insertions, 1 deletions
diff --git a/ext/posix/config.m4 b/ext/posix/config.m4 index 6b95375d88..b6b1cf7c1a 100644 --- a/ext/posix/config.m4 +++ b/ext/posix/config.m4 @@ -11,5 +11,5 @@ if test "$PHP_POSIX" = "yes"; then AC_CHECK_HEADERS(sys/mkdev.h) - AC_CHECK_FUNCS(seteuid setegid setsid getsid setpgid getpgid ctermid mkfifo mknod getrlimit getlogin getgroups makedev) + AC_CHECK_FUNCS(seteuid setegid setsid getsid setpgid getpgid ctermid mkfifo mknod getrlimit getlogin getgroups makedev initgroups) fi diff --git a/ext/posix/php_posix.h b/ext/posix/php_posix.h index 70982918a8..ddaa401a47 100644 --- a/ext/posix/php_posix.h +++ b/ext/posix/php_posix.h @@ -110,6 +110,10 @@ PHP_FUNCTION(posix_getpwuid); PHP_FUNCTION(posix_getrlimit); #endif +#ifdef HAVE_INITGROUPS +PHP_FUNCTION(posix_initgroups); +#endif + PHP_FUNCTION(posix_get_last_error); PHP_FUNCTION(posix_strerror); diff --git a/ext/posix/posix.c b/ext/posix/posix.c index bb1935c435..715f482e8d 100644 --- a/ext/posix/posix.c +++ b/ext/posix/posix.c @@ -134,6 +134,9 @@ zend_function_entry posix_functions[] = { PHP_FE(posix_get_last_error, NULL) PHP_FALIAS(posix_errno, posix_get_last_error, NULL) PHP_FE(posix_strerror, NULL) +#ifdef HAVE_INITGROUPS + PHP_FE(posix_initgroups, NULL) +#endif {NULL, NULL, NULL} }; @@ -1056,6 +1059,22 @@ PHP_FUNCTION(posix_strerror) #endif +/* {{{ proto bool initgroups(string name, int base_group_id) + Calculate the group access list for the user specified in name. */ +PHP_FUNCTION(posix_initgroups) +{ + long basegid; + char *name; + int name_len; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sl", &name, &name_len, &basegid) == FAILURE) { + RETURN_FALSE; + } + + RETURN_BOOL(!initgroups((const char *)name, basegid)); +} +/* }}} */ + /* * Local variables: * tab-width: 4 |
