From: Sam Watkins <sam@nipl.net>
To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net>
Subject: Re: [9fans] ideas for helpful system io functions
Date: Sat, 5 Dec 2009 14:56:32 +1100 [thread overview]
Message-ID: <20091205035632.GD8759@nipl.net> (raw)
In-Reply-To: <alpine.BSF.2.00.0912042029370.66255@legolas.yyc.orthanc.ca>
On Fri, Dec 04, 2009 at 08:36:29PM -0700, Lyndon Nerenberg wrote:
> >Another example, a little server that allows connections on a single port
> >443 for https and ssh. Ideally after reading the "GET" or ssh banner, it
> >can just exec whichever server is needed (or fork and exec something like
> >netcat). but in fact due to this "already read some data" problem, it has
> >to stay alive and copy the data in and out from the other server.
>
> It shouldn't be too difficult to write a device that allows file descriptors
> to be passed from one process to another.
You can do that with unix-domain sockets (or fork, sort of), but I don't think
it solves the problem. "fork" also shares fds, but sharing or sending fds does
not let me send some extra prefix data to a CGI script's stdin fd then exit and
let the CGI script take over reading from my old stdin fd, if that makes any
sense. also, obviously I don't want to have to hack every CGI script in
existance to make it work.
Another possible solution, which would only work with http (so it's not a real
solution) would be a function like "read_until" where it would stop reading
just before a delimiter "\r\n\r\n" in that case of http. That would not help
with the ssh/https and similar multiplexing problems. I think the best way
would be my proposed "join" system call.
My proposed type of CGI would have an advantage (?) that it presents a
bidirectional socket to the script, rather than a file that was already read
and saved to disk and a write-only socket. CGI chat over a single http
connection for example would be possible (if the browser/client also supported
it).
Maybe I need to draw some ascii-art.
This may be off topic here since it's not specific to plan 9 but I suppose
people here may be interested in topics like this. and I don't think I want to
brave the lkml right now! "splice" and "sendfile" on Linux are similar
contepts to my "join" I guess. I think join is better though!
Sam
next prev parent reply other threads:[~2009-12-05 3:56 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-12-05 3:17 Sam Watkins
2009-12-05 3:36 ` Lyndon Nerenberg
2009-12-05 3:56 ` Sam Watkins [this message]
2009-12-05 4:03 ` Lyndon Nerenberg
2009-12-05 18:16 ` Tim Newsham
2009-12-05 18:24 ` Tim Newsham
2009-12-05 19:47 ` Bakul Shah
2009-12-07 12:24 ` roger peppe
2009-12-07 12:32 ` Charles Forsyth
2009-12-07 12:35 ` Francisco J Ballesteros
2009-12-07 13:42 ` Charles Forsyth
2009-12-07 16:10 ` erik quanstrom
2009-12-07 16:14 ` Francisco J Ballesteros
2009-12-07 14:13 ` Sam Watkins
2009-12-07 14:36 ` roger peppe
2009-12-07 19:11 ` Nathaniel W Filardo
2009-12-07 21:03 ` roger peppe
2009-12-08 12:51 ` matt
2009-12-07 12:06 ` Mechiel Lukkien
2009-12-07 12:31 ` roger peppe
2010-01-05 13:48 ` Enrico Weigelt
2010-01-05 15:53 ` Steve Simon
[not found] <<alpine.BSF.2.00.0912042029370.66255@legolas.yyc.orthanc.ca>
2009-12-05 4:47 ` erik quanstrom
2009-12-05 5:09 ` Lyndon Nerenberg
2009-12-05 5:11 ` Lyndon Nerenberg
2009-12-05 8:10 ` Sam Watkins
2009-12-05 11:44 ` Francisco J Ballesteros
2009-12-05 16:32 ` ron minnich
2009-12-05 17:01 ` Francisco J Ballesteros
2009-12-05 17:09 ` ron minnich
[not found] <<alpine.BSF.2.00.0912042210290.81688@legolas.yyc.orthanc.ca>
2009-12-05 13:26 ` erik quanstrom
2009-12-05 14:22 ` Sam Watkins
2009-12-05 17:47 ` Skip Tavakkolian
2009-12-05 17:56 ` Skip Tavakkolian
[not found] <<20091205081032.GJ8759@nipl.net>
2009-12-05 13:51 ` erik quanstrom
[not found] <<20091205194741.0697D5B76@mail.bitblocks.com>
2009-12-05 20:03 ` erik quanstrom
2009-12-05 20:24 ` Bakul Shah
[not found] <<20091205202420.855AD5B77@mail.bitblocks.com>
2009-12-05 20:27 ` erik quanstrom
2009-12-05 20:59 ` Bakul Shah
2009-12-06 7:45 ` Sam Watkins
2009-12-05 20:30 ` erik quanstrom
[not found] <<20091207120652.GB16320@knaagkever.ueber.net>
2009-12-07 12:19 ` erik quanstrom
2009-12-07 14:41 Francisco J Ballesteros
2009-12-07 15:11 ` roger peppe
[not found] <<8ccc8ba40912070814o2f2c7eb9s5887a31810eab12e@mail.gmail.com>
2009-12-07 16:24 ` erik quanstrom
2009-12-07 16:48 ` Francisco J Ballesteros
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20091205035632.GD8759@nipl.net \
--to=sam@nipl.net \
--cc=9fans@9fans.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).