Skip to content
This repository has been archived by the owner on May 4, 2018. It is now read-only.

windows: make it possible to send pipe handles over ipc pipes #480

Open
piscisaureus opened this issue Jun 28, 2012 · 1 comment
Open

windows: make it possible to send pipe handles over ipc pipes #480

piscisaureus opened this issue Jun 28, 2012 · 1 comment

Comments

@piscisaureus
Copy link

Needs a refactor of the ipc protocol.

@BobDickinson
Copy link

I'm starting to develop the opinion that this is the root of the issue that I reported against iisnode. I based a pretty large part of the design of my current project on the concept that I would be able to pass a handle (a socket) over the IPC to a child process, as is well covered in the node docs. This all worked fine until I tried to deploy it to Azure, which virtualizes the socket plumbing such that your node app listens on a pipe (instead of a TCP port). The sockets that you get on connections to that pipe look and work exactly like TCP sockets, except that they apparently cannot be passed to a child process via child.send(message, handle). This was especially frustrating as the handle I was passing was a net.Socket and took the same internal code path through send(). I didn't even know that it wasn't a TCP socket under Azure until I'd done quite a bit of debugging.

As someone who invested quite a bit of time, both in designing a system based on this approach and on tracking down why it isn't supported, I would have very much appreciated seeing this limitation called out in the docs. Maybe: "On Windows named pipes are used for IPC (via libuv), and that implementation has a number of limitations, including limitations on the kinds of handles that can be passed via send()".

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants