authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2017-09-26 03:35:21-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2017-09-26 03:35:33-04:00
log768af66977df40529e7639cd531deb49f6e500ae
tree5e82774817ab8571679e46df6e1c3cc31e8c00bc
parent4f0f3a7d45ef73d0e3e1721e21d17b3506815402

implement setreuid, setregid for darwin


2 files changed, 10 insertions(+), 0 deletions(-)

std/c/index.zig+2
...@@ -41,3 +41,5 @@ pub extern "c" fn realpath(noalias file_name: &const u8, noalias resolved_name:...@@ -41,3 +41,5 @@ pub extern "c" fn realpath(noalias file_name: &const u8, noalias resolved_name:
41pub extern "c" fn sigprocmask(how: c_int, noalias set: &const sigset_t, noalias oset: ?&sigset_t) -> c_int;41pub extern "c" fn sigprocmask(how: c_int, noalias set: &const sigset_t, noalias oset: ?&sigset_t) -> c_int;
42pub extern "c" fn sigaction(sig: c_int, noalias act: &const Sigaction, noalias oact: ?&Sigaction) -> c_int;42pub extern "c" fn sigaction(sig: c_int, noalias act: &const Sigaction, noalias oact: ?&Sigaction) -> c_int;
43pub extern "c" fn nanosleep(rqtp: &const timespec, rmtp: ?&timespec) -> c_int;43pub extern "c" fn nanosleep(rqtp: &const timespec, rmtp: ?&timespec) -> c_int;
44pub extern "c" fn setreuid(ruid: c_uint, euid: c_uint) -> c_int;
45pub extern "c" fn setregid(rgid: c_uint, egid: c_uint) -> c_int;
std/os/darwin.zig+8
...@@ -229,6 +229,14 @@ pub fn realpath(noalias filename: &const u8, noalias resolved_name: &u8) -> usiz...@@ -229,6 +229,14 @@ pub fn realpath(noalias filename: &const u8, noalias resolved_name: &u8) -> usiz
229 if (c.realpath(filename, resolved_name) == null) @bitCast(usize, -isize(*c._errno())) else 0229 if (c.realpath(filename, resolved_name) == null) @bitCast(usize, -isize(*c._errno())) else 0
230}230}
231231
232pub fn setreuid(ruid: u32, euid: u32) -> usize {
233 errnoWrap(c.setreuid(ruid, euid))
234}
235
236pub fn setregid(rgid: u32, egid: u32) -> usize {
237 errnoWrap(c.setregid(rgid, egid))
238}
239
232pub fn sigprocmask(flags: u32, noalias set: &const sigset_t, noalias oldset: ?&sigset_t) -> usize {240pub fn sigprocmask(flags: u32, noalias set: &const sigset_t, noalias oldset: ?&sigset_t) -> usize {
233 errnoWrap(c.sigprocmask(@bitCast(c_int, flags), set, oldset))241 errnoWrap(c.sigprocmask(@bitCast(c_int, flags), set, oldset))
234}242}