diff options
| author | Richard Musiol <mail@richard-musiol.de> | 2018-12-13 21:56:45 +0100 |
|---|---|---|
| committer | Brad Fitzpatrick <bradfitz@golang.org> | 2019-03-22 15:40:37 +0000 |
| commit | b06d2122eec394a044d7b04a011b5b79318dc4c0 (patch) | |
| tree | cee5dc2a4b5d9448d797e7713be7dc65e1af6f32 /src/syscall/syscall_js.go | |
| parent | d0cbf9bf53ceb989f79addf4b91346840b3b8a57 (diff) | |
| download | go-b06d2122eec394a044d7b04a011b5b79318dc4c0.tar.xz | |
os,syscall: implement functions related to uid, gid and pid on js/wasm
This change implements the following functions on js/wasm:
- os.Chown
- os.Fchown
- os.Lchown
- syscall.Getuid
- syscall.Getgid
- syscall.Geteuid
- syscall.Getegid
- syscall.Getgroups
- syscall.Getpid
- syscall.Getppid
- syscall.Umask
Change-Id: Icdb0fafc02c9df6e9e3573542f8499c3464dc671
Reviewed-on: https://go-review.googlesource.com/c/go/+/154157
Run-TryBot: Richard Musiol <neelance@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Diffstat (limited to 'src/syscall/syscall_js.go')
| -rw-r--r-- | src/syscall/syscall_js.go | 47 |
1 files changed, 39 insertions, 8 deletions
diff --git a/src/syscall/syscall_js.go b/src/syscall/syscall_js.go index 4dfcc6ed64..99f9a935fe 100644 --- a/src/syscall/syscall_js.go +++ b/src/syscall/syscall_js.go @@ -285,14 +285,45 @@ func Getwd() (wd string, err error) { return string(buf[:n]), nil } -func Getegid() int { return 1 } -func Geteuid() int { return 1 } -func Getgid() int { return 1 } -func Getgroups() ([]int, error) { return []int{1}, nil } -func Getppid() int { return 2 } -func Getpid() int { return 3 } -func Gettimeofday(tv *Timeval) error { return ENOSYS } -func Getuid() int { return 1 } +func Getuid() int { + return jsProcess.Call("getuid").Int() +} + +func Getgid() int { + return jsProcess.Call("getgid").Int() +} + +func Geteuid() int { + return jsProcess.Call("geteuid").Int() +} + +func Getegid() int { + return jsProcess.Call("getegid").Int() +} + +func Getgroups() ([]int, error) { + array := jsProcess.Call("getgroups") + groups := make([]int, array.Length()) + for i := range groups { + groups[i] = array.Index(i).Int() + } + return groups, nil +} + +func Getpid() int { + return jsProcess.Get("pid").Int() +} + +func Getppid() int { + return jsProcess.Get("ppid").Int() +} + +func Umask(mask int) (oldmask int) { + return jsProcess.Call("umask", mask).Int() +} + +func Gettimeofday(tv *Timeval) error { return ENOSYS } + func Kill(pid int, signum Signal) error { return ENOSYS } func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { return 0, ENOSYS |
