Blame


1 42400cf8 2005-02-11 devnull #include <u.h>
2 42400cf8 2005-02-11 devnull #include <libc.h>
3 42400cf8 2005-02-11 devnull #include <auth.h>
4 42400cf8 2005-02-11 devnull #include <thread.h>
5 42400cf8 2005-02-11 devnull #include <9pclient.h>
6 42400cf8 2005-02-11 devnull #include "authlocal.h"
7 42400cf8 2005-02-11 devnull
8 42400cf8 2005-02-11 devnull CFsys*
9 42400cf8 2005-02-11 devnull fsamount(int fd, char *aname)
10 42400cf8 2005-02-11 devnull {
11 42400cf8 2005-02-11 devnull CFid *afid, *fid;
12 42400cf8 2005-02-11 devnull AuthInfo *ai;
13 42400cf8 2005-02-11 devnull CFsys *fs;
14 fa325e9b 2020-01-10 cross
15 42400cf8 2005-02-11 devnull fs = fsinit(fd);
16 42400cf8 2005-02-11 devnull if(fs == nil)
17 42400cf8 2005-02-11 devnull return nil;
18 42400cf8 2005-02-11 devnull if((afid = fsauth(fs, getuser(), aname)) == nil)
19 42400cf8 2005-02-11 devnull goto noauth;
20 42400cf8 2005-02-11 devnull ai = fsauth_proxy(afid, amount_getkey, "proto=p9any role=client");
21 42400cf8 2005-02-11 devnull if(ai != nil)
22 42400cf8 2005-02-11 devnull auth_freeAI(ai);
23 42400cf8 2005-02-11 devnull noauth:
24 42400cf8 2005-02-11 devnull fid = fsattach(fs, afid, getuser(), aname);
25 42400cf8 2005-02-11 devnull fsclose(afid);
26 42400cf8 2005-02-11 devnull if(fid == nil){
27 42400cf8 2005-02-11 devnull _fsunmount(fs);
28 42400cf8 2005-02-11 devnull return nil;
29 42400cf8 2005-02-11 devnull }
30 42400cf8 2005-02-11 devnull fssetroot(fs, fid);
31 42400cf8 2005-02-11 devnull return fs;
32 42400cf8 2005-02-11 devnull }