diff options
author | peter <peter@FreeBSD.org> | 1996-12-30 14:23:50 +0000 |
---|---|---|
committer | peter <peter@FreeBSD.org> | 1996-12-30 14:23:50 +0000 |
commit | 70466e9584d9a14eddf04bd7d27b9e56d8800d7f (patch) | |
tree | 537909abee81aa3b7e83b049b36f27ab8476e6b6 /lib/libc | |
parent | c83a7243ccf82715783ce1c04fe78e735d041a86 (diff) | |
download | FreeBSD-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.c | 13 |
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; |