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 46f79934 2005-01-04 devnull nsmount(char *name, char *aname)
10 46f79934 2005-01-04 devnull char *addr, *ns;
12 46f79934 2005-01-04 devnull CFsys *fs;
14 46f79934 2005-01-04 devnull ns = getns();
15 46f79934 2005-01-04 devnull if(ns == nil)
16 46f79934 2005-01-04 devnull return nil;
18 46f79934 2005-01-04 devnull addr = smprint("unix!%s/%s", ns, name);
19 46f79934 2005-01-04 devnull free(ns);
20 46f79934 2005-01-04 devnull if(addr == nil)
21 46f79934 2005-01-04 devnull return nil;
23 46f79934 2005-01-04 devnull fd = dial(addr, 0, 0, 0);
24 46f79934 2005-01-04 devnull if(fd < 0){
25 46f79934 2005-01-04 devnull werrstr("dial %s: %r", addr);
26 46f79934 2005-01-04 devnull free(addr);
27 46f79934 2005-01-04 devnull return nil;
29 46f79934 2005-01-04 devnull free(addr);
31 46f79934 2005-01-04 devnull fcntl(fd, F_SETFL, FD_CLOEXEC);
33 46f79934 2005-01-04 devnull fs = fsmount(fd, aname);
34 46f79934 2005-01-04 devnull if(fs == nil){
35 46f79934 2005-01-04 devnull close(fd);
36 46f79934 2005-01-04 devnull return nil;
39 46f79934 2005-01-04 devnull return fs;