rscadd auth499363421 years agoHistory
38 lines · 648 B · C
RawDownload
/* Copyright (C) 2003 Russ Cox, Massachusetts Institute of Technology *//* See COPYRIGHT */ #include <u.h>#include <libc.h>#include <fcall.h>#include <9pclient.h>#include "fsimpl.h" CFid*fsauth(CFsys *fsys, char *uname, char *aname){	Fcall tx, rx;	void *freep;	CFid *afid; 	if((afid = _fsgetfid(fsys)) == nil)		return nil; 	tx.type = Tauth;	tx.afid = afid->fid;	tx.uname = uname;	tx.aname = aname; 	if(_fsrpc(fsys, &tx, &rx, &freep) < 0){		_fsputfid(afid);		return nil;	}	if(rx.type == Rerror){		werrstr("%s", rx.ename);		free(freep);		_fsputfid(afid);		return nil;	}	afid->qid = rx.aqid;	free(freep);	return afid;}