plan9port

fork of plan9port with libvec, libstr and libsdb
Log | Files | Refs | README | LICENSE

commit 1dc6e083c15e1580b02d30aa349821fe98fcf989
parent 70584625ae19b622a1dfe73181f2b0a083fea351
Author: rsc <devnull@localhost>
Date:   Sun, 25 Jun 2006 23:55:37 +0000

plumbunmount

Diffstat:
Mman/man3/plumb.3 | 17++++++++++++++++-
Msrc/libplumb/fid.c | 13+++++++++++++
2 files changed, 29 insertions(+), 1 deletion(-)

diff --git a/man/man3/plumb.3 b/man/man3/plumb.3 @@ -1,6 +1,6 @@ .TH PLUMB 3 .SH NAME -eplumb, plumbfree, plumbopen, plumbopenfid, plumbsend, plumbsendtofid, plumbsendtext, plumblookup, plumbpack, plumbpackattr, plumbaddattr, plumbdelattr, plumbrecv, plumbrecvfid, plumbunpack, plumbunpackpartial, plumbunpackattr, Plumbmsg \- plumb messages +eplumb, plumbfree, plumbopen, plumbunmount, plumbopenfid, plumbsend, plumbsendtofid, plumbsendtext, plumblookup, plumbpack, plumbpackattr, plumbaddattr, plumbdelattr, plumbrecv, plumbrecvfid, plumbunpack, plumbunpackpartial, plumbunpackattr, Plumbmsg \- plumb messages .SH SYNOPSIS .B #include <u.h> .br @@ -14,6 +14,9 @@ eplumb, plumbfree, plumbopen, plumbopenfid, plumbsend, plumbsendtofid, plumbsend int plumbopen(char *port, int omode) .PP .B +int plumbunmount(void) +.PP +.B int plumbsend(int fd, Plumbmsg *m) .PP .B @@ -117,6 +120,18 @@ registers, using the given receipt of messages from the named .IR port . .PP +The library mounts the +.IR plumber (4) +service on demand (using the +.IR 9pclient (3)) +library and reuses the mount instance for future +calls to +.IR plumbopen . +.I Plumbunmount +causes the library to discard its cached mount. +This can be useful if the plumber service itself has been +restarted and a client wishes to reconnect. +.PP .I Plumbsend formats and writes message .I m diff --git a/src/libplumb/fid.c b/src/libplumb/fid.c @@ -9,6 +9,19 @@ static int pfd = -1; static CFid *pfid; int +plumbunmount(void) +{ + CFsys *fsys; + + if(fsplumb){ + fsys = fsplumb; + fsplumb = nil; + fsunmount(fsys); + } + return 0; +} + +int plumbopen(char *name, int omode) { if(fsplumb == nil)