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 96ce09f1 2005-12-30 devnull # ifndef MNT_NODEV
17 96ce09f1 2005-12-30 devnull # define MNT_NODEV 0
18 96ce09f1 2005-12-30 devnull # endif
19 05bc5137 2005-07-28 devnull #else
20 05bc5137 2005-07-28 devnull # include <nfs/nfs.h>
21 05bc5137 2005-07-28 devnull #endif
22 d079d563 2005-08-11 devnull #ifdef __NetBSD__
23 d079d563 2005-08-11 devnull # include <nfs/nfsmount.h>
24 d079d563 2005-08-11 devnull #endif
25 05bc5137 2005-07-28 devnull #include <libc.h>
26 05bc5137 2005-07-28 devnull #include "mountnfs.h"
27 eda1c59b 2005-07-28 devnull #ifndef MNT_NOATIME
28 eda1c59b 2005-07-28 devnull # define MNT_NOATIME 0
29 eda1c59b 2005-07-28 devnull #endif
30 05bc5137 2005-07-28 devnull
31 05bc5137 2005-07-28 devnull void
32 05bc5137 2005-07-28 devnull mountnfs(int proto, struct sockaddr_in *sa,
33 05bc5137 2005-07-28 devnull uchar *handle, int nhandle, char *mtpt)
34 05bc5137 2005-07-28 devnull {
35 05bc5137 2005-07-28 devnull int mflag;
36 05bc5137 2005-07-28 devnull struct nfs_args na;
37 05bc5137 2005-07-28 devnull
38 05bc5137 2005-07-28 devnull memset(&na, 0, sizeof na);
39 05bc5137 2005-07-28 devnull na.version = NFS_ARGSVERSION;
40 05bc5137 2005-07-28 devnull na.addr = (struct sockaddr*)sa;
41 05bc5137 2005-07-28 devnull na.addrlen = sizeof *sa;
42 05bc5137 2005-07-28 devnull na.sotype = proto;
43 05bc5137 2005-07-28 devnull na.proto = (proto == SOCK_STREAM) ? IPPROTO_TCP : IPPROTO_UDP;
44 05bc5137 2005-07-28 devnull na.fh = handle;
45 05bc5137 2005-07-28 devnull na.fhsize = nhandle;
46 05bc5137 2005-07-28 devnull na.flags = NFSMNT_RESVPORT|NFSMNT_NFSV3|NFSMNT_INT;
47 05bc5137 2005-07-28 devnull na.wsize = NFS_WSIZE;
48 05bc5137 2005-07-28 devnull na.rsize = NFS_RSIZE;
49 05bc5137 2005-07-28 devnull na.readdirsize = NFS_READDIRSIZE;
50 6912efc4 2005-11-02 devnull na.timeo = 200;
51 05bc5137 2005-07-28 devnull na.retrans = NFS_RETRANS;
52 05bc5137 2005-07-28 devnull na.maxgrouplist = NFS_MAXGRPS;
53 05bc5137 2005-07-28 devnull na.hostname = "backup";
54 43097659 2005-11-27 devnull #if !defined(__NetBSD__) && !defined(__APPLE__)
55 05bc5137 2005-07-28 devnull na.acregmin = 60;
56 05bc5137 2005-07-28 devnull na.acregmax = 600;
57 05bc5137 2005-07-28 devnull na.acdirmin = 60;
58 05bc5137 2005-07-28 devnull na.acdirmax = 600;
59 d079d563 2005-08-11 devnull #endif
60 05bc5137 2005-07-28 devnull mflag = MNT_RDONLY|MNT_NOSUID|MNT_NOATIME|MNT_NODEV;
61 05bc5137 2005-07-28 devnull if(mount("nfs", mtpt, mflag, &na) < 0)
62 05bc5137 2005-07-28 devnull sysfatal("mount: %r");
63 05bc5137 2005-07-28 devnull }