From 23babd775575ec07938ba52f97d5e017523cb325 Mon Sep 17 00:00:00 2001 From: Moses Narrow <36607567+0pcom@users.noreply.github.com> Date: Wed, 30 Sep 2026 12:53:23 -0500 Subject: [PATCH] net: add FileListener, FileConn and TCPListener.File This package manages its own file descriptors and cannot adopt an arbitrary OS fd, so these return an error instead of being absent. Packages that reference them, such as gin and fasthttp, now compile. --- file.go | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 file.go diff --git a/file.go b/file.go new file mode 100644 index 0000000..a3a2536 --- /dev/null +++ b/file.go @@ -0,0 +1,30 @@ +package net + +import ( + "errors" + "os" +) + +// TINYGO: this package manages its own file descriptors and cannot adopt an +// arbitrary OS fd, so these exist only to let callers compile. + +var errFileNotImplemented = errors.New("net: File-based listeners/conns are not implemented on this target") + +// FileListener returns a copy of the network listener corresponding to the open +// file f. +func FileListener(f *os.File) (ln Listener, err error) { + return nil, errFileNotImplemented +} + +// FileConn returns a copy of the network connection corresponding to the open +// file f. +func FileConn(f *os.File) (c Conn, err error) { + return nil, errFileNotImplemented +} + +// File returns a copy of the underlying os.File. +// +// TINYGO: a listener here has no OS file descriptor to hand back. +func (l *TCPListener) File() (f *os.File, err error) { + return nil, errFileNotImplemented +}