diff options
Diffstat (limited to 'src/libauth/nsamount.c')
| -rw-r--r-- | src/libauth/nsamount.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/libauth/nsamount.c b/src/libauth/nsamount.c new file mode 100644 index 00000000..1447904a --- /dev/null +++ b/src/libauth/nsamount.c @@ -0,0 +1,33 @@ +#include <u.h> +#include <libc.h> +#include <auth.h> +#include <thread.h> +#include <9pclient.h> +#include "authlocal.h" + +CFsys* +nsamount(char *name, char *aname) +{ + CFid *afid, *fid; + AuthInfo *ai; + CFsys *fs; + + fs = nsinit(name); + if(fs == nil) + return nil; + if((afid = fsauth(fs, getuser(), aname)) == nil) + goto noauth; + ai = fsauth_proxy(afid, amount_getkey, "proto=p9any role=client"); + if(ai != nil) + auth_freeAI(ai); +noauth: + fid = fsattach(fs, afid, getuser(), aname); + fsclose(afid); + if(fid == nil){ + _fsunmount(fs); + return nil; + } + fssetroot(fs, fid); + return fs; +} + |
