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