about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--sunrpc/pm_getport.c10
2 files changed, 11 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 325c23dc2c..de780c255c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2003-01-14  Ulrich Drepper  <drepper@redhat.com>
 
+	* sunrpc/pm_getport.c (pmap_getport): Open TCP socket if protocol
+	== IPPROTO_TCP.
+	Patch by James Strandboge <jamie@tpptraining.com> [PR libc/4943].
+
 	* sysdeps/unix/sysv/linux/i386/dl-procinfo.c (_dl_x86_cap_flags):
 	Fix entry for bit 31.
 
diff --git a/sunrpc/pm_getport.c b/sunrpc/pm_getport.c
index a15f9785a5..00e1ba95bf 100644
--- a/sunrpc/pm_getport.c
+++ b/sunrpc/pm_getport.c
@@ -66,9 +66,13 @@ pmap_getport (address, program, version, protocol)
   struct pmap parms;
 
   address->sin_port = htons (PMAPPORT);
-  client = INTUSE(clntudp_bufcreate) (address, PMAPPROG, PMAPVERS, timeout,
-				      &socket, RPCSMALLMSGSIZE,
-				      RPCSMALLMSGSIZE);
+  if (protocol == IPPROTO_TCP)
+    client = INTUSE(clnttcp_create) (address, PMAPPROG, PMAPVERS, &socket,
+				     RPCSMALLMSGSIZE, RPCSMALLMSGSIZE);
+  else
+    client = INTUSE(clntudp_bufcreate) (address, PMAPPROG, PMAPVERS, timeout,
+					&socket, RPCSMALLMSGSIZE,
+					RPCSMALLMSGSIZE);
   if (client != (CLIENT *) NULL)
     {
       struct rpc_createerr *ce = &get_rpc_createerr ();