Blame


1 05bc5137 2005-07-28 devnull #include <u.h>
2 05bc5137 2005-07-28 devnull #include <sys/socket.h>
3 05bc5137 2005-07-28 devnull #include <netinet/in.h>
4 05bc5137 2005-07-28 devnull #include <netdb.h>
5 05bc5137 2005-07-28 devnull #include <sys/stat.h>
6 05bc5137 2005-07-28 devnull #include <sys/param.h>
7 05bc5137 2005-07-28 devnull #include <sys/mount.h>
8 05bc5137 2005-07-28 devnull #include <sys/syslog.h>
9 05bc5137 2005-07-28 devnull #include <rpc/rpc.h>
10 05bc5137 2005-07-28 devnull #include <rpc/pmap_clnt.h>
11 05bc5137 2005-07-28 devnull #include <rpc/pmap_prot.h>
12 05bc5137 2005-07-28 devnull #include <nfs/rpcv2.h>
13 05bc5137 2005-07-28 devnull #include <nfs/nfsproto.h>
14 05bc5137 2005-07-28 devnull #if defined(__FreeBSD_version) && __FreeBSD_version >= 500000
15 05bc5137 2005-07-28 devnull # include <nfsclient/nfs.h>
16 05bc5137 2005-07-28 devnull #else
17 05bc5137 2005-07-28 devnull # include <nfs/nfs.h>
18 05bc5137 2005-07-28 devnull #endif
19 d079d563 2005-08-11 devnull #ifdef __NetBSD__
20 d079d563 2005-08-11 devnull # include <nfs/nfsmount.h>
21 d079d563 2005-08-11 devnull #endif
22 05bc5137 2005-07-28 devnull #include <libc.h>
23 05bc5137 2005-07-28 devnull #include "mountnfs.h"
24 eda1c59b 2005-07-28 devnull #ifndef MNT_NOATIME
25 eda1c59b 2005-07-28 devnull # define MNT_NOATIME 0
26 eda1c59b 2005-07-28 devnull #endif
27 05bc5137 2005-07-28 devnull
28 05bc5137 2005-07-28 devnull void
29 05bc5137 2005-07-28 devnull mountnfs(int proto, struct sockaddr_in *sa,
30 05bc5137 2005-07-28 devnull uchar *handle, int nhandle, char *mtpt)
31 05bc5137 2005-07-28 devnull {
32 05bc5137 2005-07-28 devnull int mflag;
33 05bc5137 2005-07-28 devnull struct nfs_args na;
34 05bc5137 2005-07-28 devnull
35 05bc5137 2005-07-28 devnull memset(&na, 0, sizeof na);
36 05bc5137 2005-07-28 devnull na.version = NFS_ARGSVERSION;
37 05bc5137 2005-07-28 devnull na.addr = (struct sockaddr*)sa;
38 05bc5137 2005-07-28 devnull na.addrlen = sizeof *sa;
39 05bc5137 2005-07-28 devnull na.sotype = proto;
40 05bc5137 2005-07-28 devnull na.proto = (proto == SOCK_STREAM) ? IPPROTO_TCP : IPPROTO_UDP;
41 05bc5137 2005-07-28 devnull na.fh = handle;
42 05bc5137 2005-07-28 devnull na.fhsize = nhandle;
43 05bc5137 2005-07-28 devnull na.flags = NFSMNT_RESVPORT|NFSMNT_NFSV3|NFSMNT_INT;
44 05bc5137 2005-07-28 devnull na.wsize = NFS_WSIZE;
45 05bc5137 2005-07-28 devnull na.rsize = NFS_RSIZE;
46 05bc5137 2005-07-28 devnull na.readdirsize = NFS_READDIRSIZE;
47 05bc5137 2005-07-28 devnull na.timeo = 2;
48 05bc5137 2005-07-28 devnull na.retrans = NFS_RETRANS;
49 05bc5137 2005-07-28 devnull na.maxgrouplist = NFS_MAXGRPS;
50 05bc5137 2005-07-28 devnull na.hostname = "backup";
51 d079d563 2005-08-11 devnull #ifndef __NetBSD__
52 05bc5137 2005-07-28 devnull na.acregmin = 60;
53 05bc5137 2005-07-28 devnull na.acregmax = 600;
54 05bc5137 2005-07-28 devnull na.acdirmin = 60;
55 05bc5137 2005-07-28 devnull na.acdirmax = 600;
56 d079d563 2005-08-11 devnull #endif
57 05bc5137 2005-07-28 devnull mflag = MNT_RDONLY|MNT_NOSUID|MNT_NOATIME|MNT_NODEV;
58 05bc5137 2005-07-28 devnull if(mount("nfs", mtpt, mflag, &na) < 0)
59 05bc5137 2005-07-28 devnull sysfatal("mount: %r");
60 05bc5137 2005-07-28 devnull }