Blob
1 /* Copyright (C) 2003 Russ Cox, Massachusetts Institute of Technology */2 /* See COPYRIGHT */4 #include <u.h>5 #include <libc.h>6 #include <fcall.h>7 #include <9pclient.h>8 #include "fsimpl.h"10 CFid*11 fsauth(CFsys *fsys, char *uname, char *aname)12 {13 Fcall tx, rx;14 void *freep;15 CFid *afid;17 if((afid = _fsgetfid(fsys)) == nil)18 return nil;20 tx.type = Tauth;21 tx.afid = afid->fid;22 tx.uname = uname;23 tx.aname = aname;25 if(_fsrpc(fsys, &tx, &rx, &freep) < 0){26 _fsputfid(afid);27 return nil;28 }29 if(rx.type == Rerror){30 werrstr("%s", rx.ename);31 free(freep);32 _fsputfid(afid);33 return nil;34 }35 afid->qid = rx.aqid;36 free(freep);37 return afid;38 }