X-Git-Url: https://git.decadent.org.uk/gitweb/?p=nfs-utils.git;a=blobdiff_plain;f=utils%2Fshowmount%2Fshowmount.c;h=cbc8f1a503dffd2c7c75edf7d99ca712148029f1;hp=5e3e419fa908dbea75421c53c3211f874dc3430d;hb=bb3e50bd5c4f6bf94221ef69d4dc87e73d0e474b;hpb=44d18e8887cd2fdcf4996ddcbb827ed19aca8b2d diff --git a/utils/showmount/showmount.c b/utils/showmount/showmount.c index 5e3e419..cbc8f1a 100644 --- a/utils/showmount/showmount.c +++ b/utils/showmount/showmount.c @@ -37,6 +37,8 @@ #include #include +#include "nfsrpc.h" + #define TIMEOUT_UDP 3 #define TIMEOUT_TCP 10 #define TOTAL_TIMEOUT 20 @@ -352,9 +354,9 @@ int main(int argc, char **argv) mclient = NULL; msock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); if (msock != -1) { - server_addr.sin_port = getport(&server_addr, - MOUNTPROG, MOUNTVERS, IPPROTO_TCP); - if (server_addr.sin_port) { + if (nfs_getport_ping((struct sockaddr *)&server_addr, + sizeof(server_addr), MOUNTPROG, + MOUNTVERS, IPPROTO_TCP)) { ret = connect_nb(msock, &server_addr, 0); if (ret == 0) /* success */ mclient = clnttcp_create(&server_addr, @@ -367,9 +369,9 @@ int main(int argc, char **argv) } if (!mclient) { - server_addr.sin_port = getport(&server_addr, - MOUNTPROG, MOUNTVERS, IPPROTO_UDP); - if (!server_addr.sin_port) { + if (nfs_getport_ping((struct sockaddr *)&server_addr, + sizeof(server_addr), MOUNTPROG, + MOUNTVERS, IPPROTO_UDP)) { clnt_pcreateerror("showmount"); exit(1); } @@ -395,6 +397,7 @@ int main(int argc, char **argv) total_timeout); if (clnt_stat != RPC_SUCCESS) { clnt_perror(mclient, "rpc mount export"); + clnt_destroy(mclient); exit(1); } if (headers) @@ -418,6 +421,7 @@ int main(int argc, char **argv) printf("\n"); exportlist = exportlist->ex_next; } + clnt_destroy(mclient); exit(0); } @@ -428,8 +432,10 @@ int main(int argc, char **argv) total_timeout); if (clnt_stat != RPC_SUCCESS) { clnt_perror(mclient, "rpc mount dump"); + clnt_destroy(mclient); exit(1); } + clnt_destroy(mclient); n = 0; for (list = dumplist; list; list = list->ml_next)