Re: [9fans] mounting stdin using 9pfuse
On Tue, Oct 7, 2008 at 11:47 AM, Roman V. Shaposhnik <[EMAIL PROTECTED]> wrote: > Here's a question thought: > by default 9pserve only listens on an AF_UNIX socket what > would be the best way to connect it to the AF_INET one? Enrico did some work on this, see http://9fans.net/archive/2008/06/150 ... which doesn't include the patch he attached: Index: src/cmd/9pserve.c === --- src/cmd/9pserve.c (revision 707) +++ src/cmd/9pserve.c (working copy) @@ -136,7 +136,7 @@ void usage(void) { - fprint(2, "usage: 9pserve [-lnv] [-A aname afid] [-M msize] address\n"); + fprint(2, "usage: 9pserve [-c pipe] [-lnv] [-A aname afid] [-M msize] address\n"); fprint(2, "\treads/writes 9P messages on stdin/stdout\n"); threadexitsall("usage"); } @@ -157,6 +157,19 @@ ARGBEGIN{ default: usage(); + case 'c': + { + char* pipename = EARGF(usage()); + printf("pipename=\"%s\"\n", pipename); + +if((fd = dial(pipename, nil, nil, nil)) < 0) + sysfatal("dial %s: %r"); + dup(fd, 0); + dup(fd, 1); + if(fd > 1) + close(fd); + } + break; case 'A': attached = 1; xaname = EARGF(usage()); And this is the discussion he referred to: http://9fans.net/archive/2008/05/354 http://9fans.net/archive/2008/06/3 http://9fans.net/archive/2008/06/5 http://9fans.net/archive/2008/06/9 http://9fans.net/archive/2008/06/11 http://9fans.net/archive/2008/06/12 http://9fans.net/archive/2008/06/45 http://9fans.net/archive/2008/06/53 (Sometimes 9fans.net's lack of threading is a pain). -sqweek
Re: [9fans] mounting stdin using 9pfuse
On Mon, 2008-10-06 at 09:31 -0700, Russ Cox wrote: > > it appears that I'm missing something fundamental in how > > 9pfuse (the one written by Russ) works when it is given > > "-" as an address. The source looks like it should be > > simply using stdin for R/W instead of dialing out the > > connection first, but it doesn't really seem to work. > > Here's the simplest way of reproducing what I'm > > seeing: > > I don't know why your example doesn't work, but ramfs > simply may not work with 9pfuse. Any particular reason for that? I'm asking simply because ramfs appears to be quite broken on my system. In fact, I can't make it work at all. Has it bitrotted? > I would try doing something > a little more complicated, like dial tcp!sources.cs.bell-labs.com!9fs > and then run 9pfuse - with that on standard input. That, actually, seems to work fine. Although I'm about to give it more stress testing. Here's a question thought: by default 9pserve only listens on an AF_UNIX socket what would be the best way to connect it to the AF_INET one? Thanks, Roman.
Re: [9fans] mounting stdin using 9pfuse
> it appears that I'm missing something fundamental in how > 9pfuse (the one written by Russ) works when it is given > "-" as an address. The source looks like it should be > simply using stdin for R/W instead of dialing out the > connection first, but it doesn't really seem to work. > Here's the simplest way of reproducing what I'm > seeing: I don't know why your example doesn't work, but ramfs simply may not work with 9pfuse. I would try doing something a little more complicated, like dial tcp!sources.cs.bell-labs.com!9fs and then run 9pfuse - with that on standard input. 9fans is a fine list to ask about plan9port. Russ
Re: [9fans] mounting stdin using 9pfuse
On Mon, Oct 6, 2008 at 11:46 AM, Roman V. Shaposhnik <[EMAIL PROTECTED]> wrote: > Thanks for replying. You're the only one so far, which makes > me wonder whether there's a more appropriate place for > plan9port discussions. Not that I'm aware of. I think we're just seeing the effect of a small community who are a) spread thinly (consider the breadth of plan 9 + inferno + p9p + 9vx + thnx + v9fs + ...) and b) often busy with other commitments. -sqweek
Re: [9fans] mounting stdin using 9pfuse
Hi! Thanks for replying. You're the only one so far, which makes me wonder whether there's a more appropriate place for plan9port discussions. On Sun, 2008-10-05 at 23:35 +0800, sqweek wrote: > On Sat, Oct 4, 2008 at 3:18 AM, Roman V. Shaposhnik <[EMAIL PROTECTED]> wrote: > > it appears that I'm missing something fundamental in how > > 9pfuse (the one written by Russ) works when it is given > > "-" as an address. > > Seems to work here on linux after: > #include > #include > +#include > > void socket012(int fd) > { >int i; > - for (i=0; i<3; i++) { > + for (i=0; i<2; i++) { > close(i); > dup2(fd, i); > > if (fork()) { > socket012(fd[0]); > - execlp("9pfuse", "9pfuse", "-", "/tmp/fuse", (char*)0); > + execlp("9pfuse", "9pfuse", "-D", "-", "/tmp/fuse", (char*)0); > } else { > socket012(fd[1]); > > ls -l caused a failed assertion in ramfs, but it was going. Yeah, that tripped me too. In fact, I'm wondering whether ramfs works as advertised at all. I wasn't able to make it work on: $ uname -a Linux goose 2.6.22.17-0.1-default #1 SMP 2008/02/10 20:01:04 UTC x86_64 x86_64 x86_64 GNU/Linux > Can't justify why the diff works, but before adding -D and changing 3 -> 2 I > didn't have any success. It seems to be flaky on my end. It looks like a race condition but I haven't investigated further yet. > Would love to look into it further but in the > interest of not destroying my work schedule this week I'm going to get > some damn sleep. Good luck. I hear you... Thanks, Roman.
Re: [9fans] mounting stdin using 9pfuse
On Sat, Oct 4, 2008 at 3:18 AM, Roman V. Shaposhnik <[EMAIL PROTECTED]> wrote: > it appears that I'm missing something fundamental in how > 9pfuse (the one written by Russ) works when it is given > "-" as an address. Seems to work here on linux after: #include #include +#include void socket012(int fd) { int i; - for (i=0; i<3; i++) { + for (i=0; i<2; i++) { close(i); dup2(fd, i); if (fork()) { socket012(fd[0]); - execlp("9pfuse", "9pfuse", "-", "/tmp/fuse", (char*)0); + execlp("9pfuse", "9pfuse", "-D", "-", "/tmp/fuse", (char*)0); } else { socket012(fd[1]); ls -l caused a failed assertion in ramfs, but it was going. Can't justify why the diff works, but before adding -D and changing 3 -> 2 I didn't have any success. Would love to look into it further but in the interest of not destroying my work schedule this week I'm going to get some damn sleep. Good luck. -sqweek