1 46f79934 2005-01-04 devnull #include <u.h>
2 46f79934 2005-01-04 devnull #include <libc.h>
3 46f79934 2005-01-04 devnull #include <fcall.h>
4 46f79934 2005-01-04 devnull #include <9pclient.h>
5 46f79934 2005-01-04 devnull #include <ctype.h>
8 59518849 2005-02-11 devnull nsinit(char *name)
10 46f79934 2005-01-04 devnull char *addr, *ns;
13 46f79934 2005-01-04 devnull ns = getns();
14 46f79934 2005-01-04 devnull if(ns == nil)
15 46f79934 2005-01-04 devnull return nil;
17 46f79934 2005-01-04 devnull addr = smprint("unix!%s/%s", ns, name);
18 46f79934 2005-01-04 devnull free(ns);
19 46f79934 2005-01-04 devnull if(addr == nil)
20 46f79934 2005-01-04 devnull return nil;
22 46f79934 2005-01-04 devnull fd = dial(addr, 0, 0, 0);
23 46f79934 2005-01-04 devnull if(fd < 0){
24 46f79934 2005-01-04 devnull werrstr("dial %s: %r", addr);
25 46f79934 2005-01-04 devnull free(addr);
26 46f79934 2005-01-04 devnull return nil;
28 46f79934 2005-01-04 devnull free(addr);
30 46f79934 2005-01-04 devnull fcntl(fd, F_SETFL, FD_CLOEXEC);
31 59518849 2005-02-11 devnull return fsinit(fd);
35 59518849 2005-02-11 devnull nsmount(char *name, char *aname)
37 59518849 2005-02-11 devnull CFsys *fs;
38 59518849 2005-02-11 devnull CFid *fid;
40 59518849 2005-02-11 devnull fs = nsinit(name);
41 59518849 2005-02-11 devnull if(fs == nil)
42 46f79934 2005-01-04 devnull return nil;
43 59518849 2005-02-11 devnull if((fid = fsattach(fs, nil, getuser(), aname)) == nil){
44 59518849 2005-02-11 devnull _fsunmount(fs);
45 59518849 2005-02-11 devnull return nil;
47 59518849 2005-02-11 devnull fssetroot(fs, fid);
48 46f79934 2005-01-04 devnull return fs;
52 80ecfd24 2005-02-08 devnull nsopen(char *name, char *aname, char *fname, int mode)
54 80ecfd24 2005-02-08 devnull CFsys *fs;
55 80ecfd24 2005-02-08 devnull CFid *fid;
57 80ecfd24 2005-02-08 devnull fs = nsmount(name, aname);
58 80ecfd24 2005-02-08 devnull if(fs == nil)
59 80ecfd24 2005-02-08 devnull return nil;
60 80ecfd24 2005-02-08 devnull fid = fsopen(fs, fname, mode);
61 80ecfd24 2005-02-08 devnull fsunmount(fs);
62 80ecfd24 2005-02-08 devnull return fid;