aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2013-04-11 10:00:33 -0700
committerAlon Zakai <alonzakai@gmail.com>2013-04-11 10:00:33 -0700
commit010747cad678c6b5d310db072c77a2ce17f2706e (patch)
tree82e2f7a9c79249f5685ee620a28aded4d64a325a /src
parentbc234c204c0a1d6d02363e9a60418dd52a6c3c87 (diff)
parentb2a132cd667a004dc64d58c0f029978cc46eb564 (diff)
Merge pull request #1050 from arlolra/setgroups
Implements setgroups
Diffstat (limited to 'src')
-rw-r--r--src/library.js15
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