From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <3d4c69fd5fe4e31a00c344b8faf39623@vitanuova.com> To: 9fans@cse.psu.edu Subject: Re: [9fans] Okay, who's been playing with the cheese wiz? From: rog@vitanuova.com MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Date: Mon, 10 Feb 2003 13:14:18 +0000 Topicbox-Message-UUID: 55c87746-eacb-11e9-9e20-41e7f4b1d025 > I gave up on execnet a long time ago. It's clunky > and not clear that the interface should work that > way. What do you use it for? (I'm just curious.) for what it was used for, i couldn't see what was wrong with just posting a named pipe to the command into /srv, assuming that the command could serve 9p on its standard input. in fact, it would seem to me to be a good idea to let all file server commands serve 9p through stdin; then they can be mounted simply with: mount >{command} /mnt/xxx the command doesn't have to parse all those mount options or know where it might be mounted, and you don't have to worry about backgrounding it and then worrying whether it might not have mounted in time. (plus it's more versatile). the original execnet stuff (assuming i understood what it was about) could have been done with something like: postsrv u9fs >{ssh ny 'u9fs -na none -u $USER -l $HOME/tmp/u9fs.log'} (assuming the following command; maybe there is a similar command somewhere else?): /* postsrv.c */ #include #include void main(int argc, char**argv) { char buf[256]; int fd, srvfd; if (argc != 3) { fprint(2, "usage: postsrv srvname file\n"); exits("usage"); } fd = open(argv[2], ORDWR); if (fd == -1) { fprint(2, "postsrv: cannot open %s: %r\n", argv[2]); exits("error"); } snprint(buf, sizeof(buf), "/srv/%s", argv[1]); srvfd = create(buf, OWRITE, 0666); if (srvfd == -1) { fprint(2, "postsrv: cannot create %s: %r\n", buf); exits("error"); } if (fprint(srvfd, "%d", fd) == -1) { fprint(2, "postsrv: cannot post %d: %r\n", fd); exits("error"); } }