diff options
author | dg <dg@FreeBSD.org> | 1995-05-24 10:10:24 +0000 |
---|---|---|
committer | dg <dg@FreeBSD.org> | 1995-05-24 10:10:24 +0000 |
commit | e4beea5b47ae77bd1c870530ab9d00461525b654 (patch) | |
tree | b395396d7b5681f1c796ccee0e962becf6d7691d /sbin/mount_nfs | |
parent | 744d6a5236154ffd1d180e6840f33a03b278f5b6 (diff) | |
download | FreeBSD-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/mount_nfs')
-rw-r--r-- | sbin/mount_nfs/mount_nfs.c | 10 |
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 { |