<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Hey
    <br>
    <br>
    I am doing this experimentation where the WGSI server is not started
    with an host/port or a unix socket, but rather a FD value,
    <br>
    corresponding to a socket already bound by the parent process.
    <br>
    <br>
    The server would then just accept new connection on the FD, using
    socket.fromfd() to get a socket object back,
    <br>
    and forget about all the binding work.
    <br>
    <br>
    Here's a prototype based on wsgiref : <a
      class="moz-txt-link-freetext"
      href="https://github.com/tarekziade/chaussette">https://github.com/tarekziade/chaussette</a>
    <br>
    <br>
    The goal I have is to be able to just spawn web workers using
    subprocess and take care myself&nbsp; of the process
    <br>
    management part.&nbsp; I wrote a blog post on my motivations here : <a
      class="moz-txt-link-freetext"
      href="http://blog.ziade.org/2012/06/12/shared-sockets-in-circus">http://blog.ziade.org/2012/06/12/shared-sockets-in-circus</a>
    <br>
    if you want more background.
    <br>
    <br>
    Anyways, the idea I wanted to bring here was the following:
    <br>
    <br>
    most web servers out there support regular host/port or Unix Socket,
    which are usually the "unix:" prefix followed by a path on the
    system.
    <br>
    <br>
    What if web servers had these two standards <b class="moz-txt-star"><span
        class="moz-txt-tag">*</span>and<span class="moz-txt-tag">*</span></b>
    a new one which would be a "fd:" prefix.
    <br>
    <br>
    For instance, we would start server foo with:
    <br>
    <br>
    $ foo --fd:12:localhost:8080
    <br>
    <br>
    Where 12 is the fd number the foo server would use for getting the
    socket, and "localhost:8080" would just be there
    <br>
    as an information to be able to fill some WGSI headers that requires
    it.
    <br>
    <br>
    From there I could just spawn "foo" and pass to it socket.fileno()
    <br>
    <br>
    Thoughts ?
    <br>
    <br>
    Cheers
    <br>
    Tarek
    <br>
  </body>
</html>