Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

net: add support for FileConn, FilePacketConn, FileListener on windows #9503

Open
mattn opened this issue Jan 5, 2015 · 2 comments

Comments

Projects
None yet
5 participants
@mattn
Copy link
Member

commented Jan 5, 2015

Issue for discussion.

FileListener is useful to implement graceful-restart server. ex: https://github.com/lestrrat/go-server-starter

I know windows doesn't have a way to pass FDs to external process like UNIX OSs.
But it's not impossible. WSADuplicateSocket can export intormation of file descriptor as WSAPROTOCOL_INFO to specified process. This structure is possible to be written to a file as byte array.

http://msdn.microsoft.com/ja-jp/library/windows/desktop/ms741565(v=vs.85).aspx

How about implementation of os.File.dup, os.FileListener on windows?

https://codereview.appspot.com/177590043/

@minux minux changed the title FileListener on windows net: FileListener on windows Jan 5, 2015

@mikioh mikioh changed the title net: FileListener on windows net: add support for FileConn, FilePacketConn, FileListener on windows Jan 5, 2015

@mikioh mikioh added the os-windows label Jan 5, 2015

@mikioh mikioh added the help wanted label Jan 17, 2015

@rsc rsc removed the os-windows label Apr 10, 2015

@rsc rsc added this to the Unplanned milestone Apr 10, 2015

@rsc rsc added the OS-Windows label Apr 15, 2015

@gopherbot

This comment has been minimized.

Copy link

commented Apr 25, 2015

CL https://golang.org/cl/8683 mentions this issue.

mattn added a commit to mattn/go that referenced this issue Apr 24, 2018

net, syscall, internal/syscall/windows: implement FileConn, FilePacke…
…tConn, FileListener

DO NOT REVIEW

Fixes golang#9503.
Fixes golang#10350.

Change-Id: If0851cb3340281cc1ea523cd0ddf48fc7f87c775
@mikioh

This comment has been minimized.

Copy link
Contributor

commented Dec 28, 2018

This issue might be unfixable because of the architectural differences between Unix-variants and Windows. One good news is that Go 1.12 supports #24331; you may use os.File.SyscallConn instead of net.File{Conn,PacketConn,Listener} functions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.