summaryrefslogtreecommitdiffstats
path: root/sbin
diff options
context:
space:
mode:
authordg <dg@FreeBSD.org>1995-05-24 10:10:24 +0000
committerdg <dg@FreeBSD.org>1995-05-24 10:10:24 +0000
commite4beea5b47ae77bd1c870530ab9d00461525b654 (patch)
treeb395396d7b5681f1c796ccee0e962becf6d7691d /sbin
parent744d6a5236154ffd1d180e6840f33a03b278f5b6 (diff)
downloadFreeBSD-src-e4beea5b47ae77bd1c870530ab9d00461525b654.zip
FreeBSD-src-e4beea5b47ae77bd1c870530ab9d00461525b654.tar.gz
Fixed bug where UDP was required to mount a TCP NFS filesystem.
Submitted by: Ken Hornstein, Sept.'94
Diffstat (limited to 'sbin')
-rw-r--r--sbin/mount_nfs/mount_nfs.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/sbin/mount_nfs/mount_nfs.c b/sbin/mount_nfs/mount_nfs.c
index 17e27a3..3d5f579 100644
--- a/sbin/mount_nfs/mount_nfs.c
+++ b/sbin/mount_nfs/mount_nfs.c
@@ -522,15 +522,19 @@ getnfsargs(spec, nfsargsp)
saddr.sin_family = AF_INET;
saddr.sin_port = htons(PMAPPORT);
if ((tport = pmap_getport(&saddr, RPCPROG_NFS,
- NFS_VER2, IPPROTO_UDP)) == 0) {
+ NFS_VER2, nfsargsp->sotype == SOCK_STREAM ? IPPROTO_TCP :
+ IPPROTO_UDP)) == 0) {
if ((opflags & ISBGRND) == 0)
clnt_pcreateerror("NFS Portmap");
} else {
saddr.sin_port = 0;
pertry.tv_sec = 10;
pertry.tv_usec = 0;
- if ((clp = clntudp_create(&saddr, RPCPROG_MNT,
- RPCMNT_VER1, pertry, &so)) == NULL) {
+ if ((clp = (nfsargsp->sotype == SOCK_STREAM ?
+ clnttcp_create(&saddr, RPCPROG_MNT, RPCMNT_VER1,
+ &so, 0, 0) :
+ clntudp_create(&saddr, RPCPROG_MNT, RPCMNT_VER1,
+ pertry, &so))) == NULL) {
if ((opflags & ISBGRND) == 0)
clnt_pcreateerror("Cannot MNT RPC");
} else {
OpenPOWER on IntegriCloud