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 2d70c581 2005-07-13 devnull if(ns == nil){
15 2d70c581 2005-07-13 devnull werrstr("no name space");
16 46f79934 2005-01-04 devnull return nil;
19 46f79934 2005-01-04 devnull addr = smprint("unix!%s/%s", ns, name);
20 46f79934 2005-01-04 devnull free(ns);
21 2d70c581 2005-07-13 devnull if(addr == nil){
22 2d70c581 2005-07-13 devnull werrstr("smprint: %r");
23 46f79934 2005-01-04 devnull return nil;
26 46f79934 2005-01-04 devnull fd = dial(addr, 0, 0, 0);
27 46f79934 2005-01-04 devnull if(fd < 0){
28 46f79934 2005-01-04 devnull werrstr("dial %s: %r", addr);
29 46f79934 2005-01-04 devnull free(addr);
30 46f79934 2005-01-04 devnull return nil;
32 46f79934 2005-01-04 devnull free(addr);
34 2d70c581 2005-07-13 devnull fcntl(fd, F_SETFD, FD_CLOEXEC);
35 59518849 2005-02-11 devnull return fsinit(fd);
39 59518849 2005-02-11 devnull nsmount(char *name, char *aname)
41 59518849 2005-02-11 devnull CFsys *fs;
42 59518849 2005-02-11 devnull CFid *fid;
44 59518849 2005-02-11 devnull fs = nsinit(name);
45 59518849 2005-02-11 devnull if(fs == nil)
46 46f79934 2005-01-04 devnull return nil;
47 59518849 2005-02-11 devnull if((fid = fsattach(fs, nil, getuser(), aname)) == nil){
48 59518849 2005-02-11 devnull _fsunmount(fs);
49 59518849 2005-02-11 devnull return nil;
51 59518849 2005-02-11 devnull fssetroot(fs, fid);
52 46f79934 2005-01-04 devnull return fs;
56 80ecfd24 2005-02-08 devnull nsopen(char *name, char *aname, char *fname, int mode)
58 80ecfd24 2005-02-08 devnull CFsys *fs;
59 80ecfd24 2005-02-08 devnull CFid *fid;
61 80ecfd24 2005-02-08 devnull fs = nsmount(name, aname);
62 80ecfd24 2005-02-08 devnull if(fs == nil)
63 80ecfd24 2005-02-08 devnull return nil;
64 80ecfd24 2005-02-08 devnull fid = fsopen(fs, fname, mode);
65 80ecfd24 2005-02-08 devnull fsunmount(fs);
66 80ecfd24 2005-02-08 devnull return fid;