#include #include #include #include #include <9pclient.h> #include "authlocal.h" CFsys* fsamount(int fd, char *aname) { CFid *afid, *fid; AuthInfo *ai; CFsys *fs; fs = fsinit(fd); 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; }