commit 2aa7d3036738bc548cfe6d8d83ff45cb1cb9c8c7 from: rsc date: Fri Feb 11 17:00:06 2005 UTC call srv->start at start commit - b589fce2fbf05ae18a6f015240f87ce2a163521f commit + 2aa7d3036738bc548cfe6d8d83ff45cb1cb9c8c7 blob - c5262f4c79c5b52ea4264335741f8c434edb4aba blob + 2a300bbe030a57ac2fad91b6767c7b75abe6521a --- src/lib9p/srv.c +++ src/lib9p/srv.c @@ -705,6 +705,9 @@ srv(Srv *srv) srv->fpool->srv = srv; srv->rpool->srv = srv; + if(srv->start) + srv->start(srv); + while(r = getreq(srv)){ if(r->error){ respond(r, r->error); blob - 68da19a74bc025289f251a87a8b91d086925562f blob + 337d25445fa7f0b2327f54e719ea3123c5bcecb2 --- src/lib9p/tpost.c +++ src/lib9p/tpost.c @@ -3,16 +3,28 @@ #include #include #include <9p.h> -#include "post.h" +static void +launchsrv(void *v) +{ + srv(v); +} + void threadpostmountsrv(Srv *s, char *name, char *mtpt, int flag) { - Postcrud *p; + int fd[2]; - p = _post1(s, name, mtpt, flag); - if(procrfork(_post2, s, 32*1024, RFNAMEG|RFNOTEG) < 0) - sysfatal("procrfork: %r"); - _post3(p); -} + if(mtpt) + sysfatal("mount not supported"); + if(!s->nopipe){ + if(pipe(fd) < 0) + sysfatal("pipe: %r"); + s->infd = s->outfd = fd[1]; + s->srvfd = fd[0]; + } + if(name && post9pservice(s->srvfd, name) < 0) + sysfatal("post9pservice %s: %r", name); + proccreate(launchsrv, s, 32*1024); +}