summaryrefslogtreecommitdiffstats
path: root/lib/libc
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>1996-12-30 14:23:50 +0000
committerpeter <peter@FreeBSD.org>1996-12-30 14:23:50 +0000
commit70466e9584d9a14eddf04bd7d27b9e56d8800d7f (patch)
tree537909abee81aa3b7e83b049b36f27ab8476e6b6 /lib/libc
parentc83a7243ccf82715783ce1c04fe78e735d041a86 (diff)
downloadFreeBSD-src-70466e9584d9a14eddf04bd7d27b9e56d8800d7f.zip
FreeBSD-src-70466e9584d9a14eddf04bd7d27b9e56d8800d7f.tar.gz
- don't close an unopen socket
- canonical function declaration - use constants from includes, not magic numbers - use standard functions Obtained from: a diff of FreeBSD vs. OpenBSD/NetBSD rpc code.
Diffstat (limited to 'lib/libc')
-rw-r--r--lib/libc/rpc/clnt_simple.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/lib/libc/rpc/clnt_simple.c b/lib/libc/rpc/clnt_simple.c
index 5d24b85..2a641bc 100644
--- a/lib/libc/rpc/clnt_simple.c
+++ b/lib/libc/rpc/clnt_simple.c
@@ -30,7 +30,7 @@
#if defined(LIBC_SCCS) && !defined(lint)
/*static char *sccsid = "from: @(#)clnt_simple.c 1.35 87/08/11 Copyr 1984 Sun Micro";*/
/*static char *sccsid = "from: @(#)clnt_simple.c 2.2 88/08/01 4.0 RPCSRC";*/
-static char *rcsid = "$Id: clnt_simple.c,v 1.4 1996/06/10 20:13:03 jraynard Exp $";
+static char *rcsid = "$Id: clnt_simple.c,v 1.5 1996/08/12 14:00:20 peter Exp $";
#endif
/*
@@ -40,6 +40,7 @@ static char *rcsid = "$Id: clnt_simple.c,v 1.4 1996/06/10 20:13:03 jraynard Exp
* Copyright (C) 1984, Sun Microsystems, Inc.
*/
+#include <sys/param.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
@@ -55,7 +56,8 @@ static struct callrpc_private {
char *oldhost;
} *callrpc_private;
-int callrpc(host, prognum, versnum, procnum, inproc, in, outproc, out)
+int
+callrpc(host, prognum, versnum, procnum, inproc, in, outproc, out)
char *host;
int prognum, versnum, procnum;
xdrproc_t inproc, outproc;
@@ -74,7 +76,7 @@ int callrpc(host, prognum, versnum, procnum, inproc, in, outproc, out)
callrpc_private = crp;
}
if (crp->oldhost == NULL) {
- crp->oldhost = malloc(256);
+ crp->oldhost = malloc(MAXHOSTNAMELEN);
crp->oldhost[0] = 0;
crp->socket = RPC_ANYSOCK;
}
@@ -83,7 +85,8 @@ int callrpc(host, prognum, versnum, procnum, inproc, in, outproc, out)
/* reuse old client */
} else {
crp->valid = 0;
- (void)close(crp->socket);
+ if (crp->socket != -1)
+ (void)close(crp->socket);
crp->socket = RPC_ANYSOCK;
if (crp->client) {
clnt_destroy(crp->client);
@@ -94,7 +97,7 @@ int callrpc(host, prognum, versnum, procnum, inproc, in, outproc, out)
timeout.tv_usec = 0;
timeout.tv_sec = 5;
memset(&server_addr, 0, sizeof(server_addr));
- bcopy(hp->h_addr, (char *)&server_addr.sin_addr, hp->h_length);
+ memcpy((char *)&server_addr.sin_addr, hp->h_addr, hp->h_length);
server_addr.sin_len = sizeof(struct sockaddr_in);
server_addr.sin_family = AF_INET;
server_addr.sin_port = 0;
OpenPOWER on IntegriCloud