diff options
author | Greg V <greg@unrelenting.technology> | 2020-04-15 14:55:21 +0300 |
---|---|---|
committer | Greg V <greg@unrelenting.technology> | 2020-04-15 14:55:55 +0300 |
commit | d8764e8b78b2736ecd74f3fd29d6767e40cac491 (patch) | |
tree | 81d859246a8880f508e9a4ab6d1f801c1bba43d4 | |
parent | e687a59c8a6b5962b9b27cc8f7a683bab99e5006 (diff) | |
download | rust-libc-d8764e8b78b2736ecd74f3fd29d6767e40cac491.tar.gz |
freebsd: add sockcred/SOCKCREDSIZE
Like on NetBSD, but without a pid field in the struct.
-rw-r--r-- | src/unix/bsd/freebsdlike/freebsd/mod.rs | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index 1b714b7751..d9dc4f2f74 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -107,6 +107,15 @@ s! { pub msg_hdr: ::msghdr, pub msg_len: ::ssize_t, } + + pub struct sockcred { + pub sc_uid: ::uid_t, + pub sc_euid: ::uid_t, + pub sc_gid: ::gid_t, + pub sc_egid: ::gid_t, + pub sc_ngroups: ::c_int, + pub sc_groups: [::gid_t; 1], + } } s_no_extra_traits! { @@ -1136,6 +1145,15 @@ f! { as ::c_uint } + pub fn SOCKCREDSIZE(ngrps: usize) -> usize { + let ngrps = if ngrps > 0 { + ngrps - 1 + } else { + 0 + }; + ::mem::size_of::<sockcred>() + ::mem::size_of::<::gid_t>() * ngrps + } + pub fn uname(buf: *mut ::utsname) -> ::c_int { __xuname(256, buf as *mut ::c_void) } |