mirror of
https://github.com/python/cpython.git
synced 2025-07-24 03:35:53 +00:00
Merged revisions 76636 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r76636 | antoine.pitrou | 2009-12-02 21:37:54 +0100 (mer., 02 déc. 2009) | 5 lines Issue #7333: The `posix` module gains an `initgroups()` function providing access to the initgroups(3) C library call on Unix systems which implement it. Patch by Jean-Paul Calderone. ........
This commit is contained in:
parent
8a10ecc051
commit
b7572f08f4
7 changed files with 69 additions and 3 deletions
|
@ -3979,6 +3979,30 @@ posix_getgroups(PyObject *self, PyObject *noargs)
|
|||
}
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_INITGROUPS
|
||||
PyDoc_STRVAR(posix_initgroups__doc__,
|
||||
"initgroups(username, gid) -> None\n\n\
|
||||
Call the system initgroups() to initialize the group access list with all of\n\
|
||||
the groups of which the specified username is a member, plus the specified\n\
|
||||
group id.");
|
||||
|
||||
static PyObject *
|
||||
posix_initgroups(PyObject *self, PyObject *args)
|
||||
{
|
||||
char *username;
|
||||
long gid;
|
||||
|
||||
if (!PyArg_ParseTuple(args, "sl:initgroups", &username, &gid))
|
||||
return NULL;
|
||||
|
||||
if (initgroups(username, (gid_t) gid) == -1)
|
||||
return PyErr_SetFromErrno(PyExc_OSError);
|
||||
|
||||
Py_INCREF(Py_None);
|
||||
return Py_None;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_GETPGID
|
||||
PyDoc_STRVAR(posix_getpgid__doc__,
|
||||
"getpgid(pid) -> pgid\n\n\
|
||||
|
@ -7184,6 +7208,9 @@ static PyMethodDef posix_methods[] = {
|
|||
#ifdef HAVE_SETGROUPS
|
||||
{"setgroups", posix_setgroups, METH_O, posix_setgroups__doc__},
|
||||
#endif /* HAVE_SETGROUPS */
|
||||
#ifdef HAVE_INITGROUPS
|
||||
{"initgroups", posix_initgroups, METH_VARARGS, posix_initgroups__doc__},
|
||||
#endif /* HAVE_INITGROUPS */
|
||||
#ifdef HAVE_GETPGID
|
||||
{"getpgid", posix_getpgid, METH_VARARGS, posix_getpgid__doc__},
|
||||
#endif /* HAVE_GETPGID */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue