33 lines · 575 B · C
RawDownload
#include <u.h>#include <libc.h>#include <auth.h>#include <thread.h>#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;}