diff options
Diffstat (limited to 'usr.bin/showmount')
-rw-r--r-- | usr.bin/showmount/showmount.c | 36 |
1 files changed, 2 insertions, 34 deletions
diff --git a/usr.bin/showmount/showmount.c b/usr.bin/showmount/showmount.c index ecc528d..df692ac 100644 --- a/usr.bin/showmount/showmount.c +++ b/usr.bin/showmount/showmount.c @@ -215,7 +215,6 @@ main(argc, argv) * tcp_callrpc has the same interface as callrpc, but tries to * use tcp as transport method in order to handle large replies. */ - int tcp_callrpc(host, prognum, versnum, procnum, inproc, in, outproc, out) char *host; @@ -227,43 +226,12 @@ tcp_callrpc(host, prognum, versnum, procnum, inproc, in, outproc, out) xdrproc_t outproc; char *out; { - struct hostent *hp; - struct sockaddr_in server_addr; CLIENT *client; - int sock; struct timeval timeout; int rval; - - hp = gethostbyname(host); - - if (!hp) - return ((int) RPC_UNKNOWNHOST); - memset(&server_addr,0,sizeof(server_addr)); - 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; - - sock = RPC_ANYSOCK; - - client = clnttcp_create(&server_addr, - (u_long) prognum, - (u_long) versnum, &sock, 0, 0); - if (!client) { - timeout.tv_sec = 5; - timeout.tv_usec = 0; - server_addr.sin_port = 0; - sock = RPC_ANYSOCK; - client = clntudp_create(&server_addr, - (u_long) prognum, - (u_long) versnum, - timeout, - &sock); - } - if (!client) + if ((client = clnt_create(host, prognum, versnum, "tcp")) == NULL && + (client = clnt_create(host, prognum, versnum, "udp")) == NULL) return ((int) rpc_createerr.cf_stat); timeout.tv_sec = 25; |