diff options
author | Alon Zakai <alonzakai@gmail.com> | 2013-04-11 10:00:33 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2013-04-11 10:00:33 -0700 |
commit | 010747cad678c6b5d310db072c77a2ce17f2706e (patch) | |
tree | 82e2f7a9c79249f5685ee620a28aded4d64a325a /src | |
parent | bc234c204c0a1d6d02363e9a60418dd52a6c3c87 (diff) | |
parent | b2a132cd667a004dc64d58c0f029978cc46eb564 (diff) |
Merge pull request #1050 from arlolra/setgroups
Implements setgroups
Diffstat (limited to 'src')
-rw-r--r-- | src/library.js | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/library.js b/src/library.js index f6b2a31e..01c0a3f3 100644 --- a/src/library.js +++ b/src/library.js @@ -2118,7 +2118,20 @@ LibraryManager.library = { return 1; } }, - // TODO: Implement initgroups, setgroups (grp.h). + // TODO: Implement initgroups (grp.h). + setgroups__deps: ['__setErrNo', '$ERRNO_CODES', 'sysconf'], + setgroups: function (ngroups, gidset) { + // int setgroups(int ngroups, const gid_t *gidset); + // https://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man2/setgroups.2.html + if (ngroups < 1 || ngroups > _sysconf({{{ cDefine('_SC_NGROUPS_MAX') }}})) { + ___setErrNo(ERRNO_CODES.EINVAL); + return -1; + } else { + // We have just one process/user/group, so it makes no sense to set groups. + ___setErrNo(ERRNO_CODES.EPERM); + return -1; + } + }, gethostid: function() { // long gethostid(void); // http://pubs.opengroup.org/onlinepubs/000095399/functions/gethostid.html |