diff options
author | Luke Shumaker <lukeshu@sbcglobal.net> | 2015-09-07 23:15:28 -0600 |
---|---|---|
committer | Luke Shumaker <lukeshu@sbcglobal.net> | 2015-09-07 23:15:28 -0600 |
commit | b6f1fcb4f2d3cfb1eea95e9e0c6ae11f0659ba3a (patch) | |
tree | 6272ab4823976bba1b99ca26c2ee0716cc27ba26 /src/nshd/hackers_git/name2gid.go | |
parent | 5120f242ece853648b7c9391257825461db8c838 (diff) |
Pull the mucking with getgrnam into a getgr package.
Diffstat (limited to 'src/nshd/hackers_git/name2gid.go')
-rw-r--r-- | src/nshd/hackers_git/name2gid.go | 42 |
1 files changed, 0 insertions, 42 deletions
diff --git a/src/nshd/hackers_git/name2gid.go b/src/nshd/hackers_git/name2gid.go deleted file mode 100644 index c155d29..0000000 --- a/src/nshd/hackers_git/name2gid.go +++ /dev/null @@ -1,42 +0,0 @@ -package hackers_git - -import ( - "syscall" - "unsafe" -) - -//#define _XOPEN_SOURCE /* for getgrnam_r(3) in grp.h */ -//#include <stdlib.h> /* for free(3) */ -//#include <unistd.h> /* for sysconf(3) */ -//#include <grp.h> /* for getgrnam_r(3) */ -import "C" - -func name2gid(name string) (gid int32) { - nameC := C.CString(name) - defer C.free(unsafe.Pointer(nameC)) - - gid = -1 - buflen := C.sysconf(C._SC_GETGR_R_SIZE_MAX) - if buflen < 1 { - buflen = 1024 - } - buf := make([]byte, buflen) - var grp C.struct_group - var ret *C.struct_group - for { - success, errno := C.getgrnam_r(nameC, &grp, (*C.char)(unsafe.Pointer(&buf[0])), C.size_t(buflen), &ret) - if success >= 0 { - break - } - if errno == syscall.ERANGE { - buflen += 256 - buf = make([]byte, buflen) - } else { - return - } - } - if ret != nil { - gid = int32(ret.gr_gid) - } - return -} |