X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=utils%2Fmount%2Fnetwork.c;h=75354a7a62f044b2fec594beeb9a0c57ccddc1ec;hb=eddfbf7ac8ecd3f17dc295df6c1dac4bbc6ca846;hp=849ce1d6825da3ad0d8865b28876a54d5713a91f;hpb=6ab9cdacd2ea314a837c7affb840aeeec620cb66;p=nfs-utils.git diff --git a/utils/mount/network.c b/utils/mount/network.c index 849ce1d..75354a7 100644 --- a/utils/mount/network.c +++ b/utils/mount/network.c @@ -48,17 +48,6 @@ #include "mount_constants.h" #include "network.h" -#ifdef HAVE_RPCSVC_NFS_PROT_H -#include -#else -#include -#define nfsstat nfs_stat -#endif - -#ifndef NFS_PORT -#define NFS_PORT 2049 -#endif - #define PMAP_TIMEOUT (10) #define CONNECT_TIMEOUT (20) #define MOUNT_TIMEOUT (30) @@ -543,11 +532,10 @@ static int probe_port(clnt_addr_t *server, const unsigned long *versions, } if (clnt_ping(saddr, prog, *p_vers, *p_prot, NULL)) goto out_ok; - if (rpc_createerr.cf_stat == RPC_TIMEDOUT) - goto out_bad; } } if (rpc_createerr.cf_stat != RPC_PROGNOTREGISTERED && + rpc_createerr.cf_stat != RPC_TIMEDOUT && rpc_createerr.cf_stat != RPC_PROGVERSMISMATCH) goto out_bad; @@ -556,6 +544,9 @@ static int probe_port(clnt_addr_t *server, const unsigned long *versions, continue; p_prot = protos; } + if (rpc_createerr.cf_stat == RPC_TIMEDOUT) + goto out_bad; + if (vers || !*++p_vers) break; } @@ -886,39 +877,6 @@ int clnt_ping(struct sockaddr_in *saddr, const unsigned long prog, return 0; } -/** - * get_client_address - acquire our local network address - * @saddr: server's address - * @caddr: filled in with our network address - * - * Discover a network address that the server will use to call us back. - * On multi-homed clients, this address depends on which NIC we use to - * route requests to the server. - * - * Use a connected datagram socket so as not to leave a socket in TIME_WAIT. - * - * Returns one if successful, otherwise zero. - */ -int get_client_address(struct sockaddr_in *saddr, struct sockaddr_in *caddr) -{ - socklen_t len = sizeof(*caddr); - int socket, err; - - socket = get_socket(saddr, IPPROTO_UDP, CONNECT_TIMEOUT, FALSE, TRUE); - if (socket == RPC_ANYSOCK) - return 0; - - err = getsockname(socket, caddr, &len); - close(socket); - - if (err && verbose) { - nfs_error(_("%s: getsockname failed: %s"), - progname, strerror(errno)); - return 0; - } - return 1; -} - /* * Try a getsockname() on a connected datagram socket. *