]> Cypherpunks.ru repositories - gostls13.git/blobdiff - src/syscall/fs_wasip1.go
net: implement wasip1 FileListener and FileConn
[gostls13.git] / src / syscall / fs_wasip1.go
index 25cabf82343660532cec038e15348a951ac77750..d60ab0b53eebfb473f7f95b7d394ddba8cc73208 100644 (file)
@@ -279,6 +279,12 @@ func fd_fdstat_get_flags(fd int) (uint32, error) {
        return uint32(stat.fdflags), errnoErr(errno)
 }
 
+func fd_fdstat_get_type(fd int) (uint8, error) {
+       var stat fdstat
+       errno := fd_fdstat_get(int32(fd), unsafe.Pointer(&stat))
+       return stat.filetype, errnoErr(errno)
+}
+
 type preopentype = uint8
 
 const (
@@ -331,12 +337,12 @@ func init() {
                if errno == EBADF {
                        break
                }
+               if errno == ENOTDIR || prestat.typ != preopentypeDir {
+                       continue
+               }
                if errno != 0 {
                        panic("fd_prestat: " + errno.Error())
                }
-               if prestat.typ != preopentypeDir {
-                       continue
-               }
                if int(prestat.dir.prNameLen) > len(dirNameBuf) {
                        dirNameBuf = make([]byte, prestat.dir.prNameLen)
                }