From mblapp@fuchur.lan.attic.ch  Sun Mar 25 04:55:42 2001
Return-Path: <mblapp@fuchur.lan.attic.ch>
Received: from fuchur.lan.attic.ch (fuchur.lan.attic.ch [194.235.47.21])
	by hub.freebsd.org (Postfix) with ESMTP id DB8AD37B71B
	for <FreeBSD-gnats-submit@freebsd.org>; Sun, 25 Mar 2001 04:55:40 -0800 (PST)
	(envelope-from mblapp@fuchur.lan.attic.ch)
Received: (from root@localhost)
	by fuchur.lan.attic.ch (8.11.3/8.11.3) id f2PCuIT39982;
	Sun, 25 Mar 2001 14:56:18 +0200 (CEST)
	(envelope-from mblapp)
Message-Id: <200103251256.f2PCuIT39982@fuchur.lan.attic.ch>
Date: Sun, 25 Mar 2001 14:56:18 +0200 (CEST)
From: mb@imp.ch
Reply-To: mb@imp.ch
To: FreeBSD-gnats-submit@freebsd.org
Cc:
Subject: [Fix] mount_nfs port=<port_number>
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         26070
>Category:       bin
>Synopsis:       [Fix] mount_nfs port=<port_number>
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    gnats-admin
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Mar 25 05:00:01 PST 2001
>Closed-Date:    Sun Mar 25 07:35:53 PST 2001
>Last-Modified:  Wed Oct 26 06:37:02 GMT 2005
>Originator:     
>Release:        
>Organization:
>Environment:
>Description:

Re-add the functionality I removed by misstake. We support connections to
nfsd ports, without using portmapper. This fixes the cfs port.

>How-To-Repeat:

>Fix:

http://home.teleport.ch/freebsd/mountd.c.diff

--- sbin/mount_nfs/mount_nfs.c	Mon Mar 19 13:50:01 2001
+++ sbin/mount_nfs/mount_nfs.c	Fri Mar 23 19:20:22 2001
@@ -585,6 +585,8 @@
 	char host[NI_MAXHOST], serv[NI_MAXSERV];
 	static struct netbuf nfs_nb;
 	static struct sockaddr_storage nfs_ss;
+	struct sockaddr_in *sin;
+	struct sockaddr_in6 *sin6;
 	struct netconfig *nconf;
 	char *netid;
 	struct timeval pertry, try;
@@ -704,10 +706,23 @@
 		retrycnt = orgcnt;
 
 		while (retrycnt > 0) {
+			if (port_no != 0) {
+				if (ai_nfs->ai_family == AF_INET6) {
+					((struct sockaddr_in6 *)ai_nfs->
+					    ai_addr)->sin6_port = htons(port_no);
+					nfs_nb.len = sizeof(struct sockaddr_in6);
+				} else {
+					((struct sockaddr_in *)ai_nfs->
+					    ai_addr)->sin_port = htons(port_no);
+					nfs_nb.len = sizeof(struct sockaddr_in);
+				}
+				memset(&nfs_ss, 0, sizeof(nfs_ss));
+				memcpy(&nfs_ss, ai_nfs->ai_addr, sizeof(ai_nfs->ai_addr));
+			}
 			nfs_nb.buf = &nfs_ss;
 			nfs_nb.maxlen = sizeof nfs_ss;
-			if (!rpcb_getaddr(RPCPROG_NFS, nfsvers, nconf,
-			    &nfs_nb, hostp)){
+			if (port_no == 0 && !rpcb_getaddr(RPCPROG_NFS,
+			    nfsvers, nconf, &nfs_nb, hostp)) {
 				if (rpc_createerr.cf_stat == RPC_SYSTEMERROR) {
 					nfhret.stat = rpc_createerr.cf_error.re_errno;
 					break;
>Release-Note:
>Audit-Trail:
State-Changed-From-To: open->closed 
State-Changed-By: roam 
State-Changed-When: Sun Mar 25 07:35:53 PST 2001 
State-Changed-Why:  
Misfiled; originator shall refile. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=26070 
>Unformatted:
 System: FreeBSD fuchur.lan.attic.ch 5.0-CURRENT FreeBSD 5.0-CURRENT #8: Tue Mar 20 14:39:22 CET 2001 root@fuchur.lan.attic.ch:/usr/src/sys/compile/MARTIN i386
 
