Blame


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