aboutsummaryrefslogtreecommitdiff
path: root/src/syscall/syscall_js.go
diff options
context:
space:
mode:
authorRichard Musiol <mail@richard-musiol.de>2018-12-13 21:56:45 +0100
committerBrad Fitzpatrick <bradfitz@golang.org>2019-03-22 15:40:37 +0000
commitb06d2122eec394a044d7b04a011b5b79318dc4c0 (patch)
treecee5dc2a4b5d9448d797e7713be7dc65e1af6f32 /src/syscall/syscall_js.go
parentd0cbf9bf53ceb989f79addf4b91346840b3b8a57 (diff)
downloadgo-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.go47
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