commit - 70584625ae19b622a1dfe73181f2b0a083fea351
commit + 1dc6e083c15e1580b02d30aa349821fe98fcf989
blob - 970919ad194a8f16a75dfc0a484c07471aae9eb0
blob + fa78a2b5ab91ce1772a683266b906e2c9e88aad1
--- man/man3/plumb.3
+++ man/man3/plumb.3
.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
int plumbopen(char *port, int omode)
.PP
.B
+int plumbunmount(void)
+.PP
+.B
int plumbsend(int fd, Plumbmsg *m)
.PP
.B
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
blob - cea5ce028d071391c42c345c236acc1eb9fb2139
blob + ec133c821835f90e750720a6baa0dad825defd71
--- src/libplumb/fid.c
+++ src/libplumb/fid.c
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)