spaceork@dhp.com - 3.18.01 1. Apply Patch: cd /dir_where_netkit_is/netkit-rpc-0.17/rpcinfo patch < rpcinfo-diff 2. Make rpcinfo Suggested usage for -p flag: Against older Solaris (version 2.5.1 or lower) rpcinfo -n 32771 -p host For standard portmapper port: rpcinfo -n 111 -p host --- rpcinfo.c.orig Fri Mar 16 19:17:21 2001 +++ rpcinfo.c Sat Mar 17 17:14:13 2001 @@ -66,7 +66,7 @@ static void udpping(u_short portflag, int argc, char **argv); static void tcpping(u_short portflag, int argc, char **argv); static int pstatus(CLIENT *client, u_long prognum, u_long vers); -static void pmapdump(int argc, char **argv); +static void pmapdump(u_short portflag, int argc, char **argv); static bool_t reply_proc(void *res, struct sockaddr_in *who); static void brdcst(int argc, char **argv); static void deletereg(int argc, char **argv); @@ -152,11 +152,11 @@ switch (function) { case PMAPDUMP: - if (portnum != 0) { + if (portnum == 0) { usage(); return (1); } - pmapdump(argc - optind, argv + optind); + pmapdump(portnum, argc - optind, argv + optind); break; case UDPPING: @@ -472,7 +472,7 @@ } static void -pmapdump(int argc, char **argv) +pmapdump(u_short portnum, int argc, char **argv) { struct sockaddr_in server_addr; struct pmaplist *head = NULL; @@ -480,6 +480,7 @@ struct timeval minutetimeout; register CLIENT *client; struct rpcent *rpc; + struct timeval to; if (argc > 1) { usage(); @@ -494,9 +495,14 @@ } minutetimeout.tv_sec = 60; minutetimeout.tv_usec = 0; - server_addr.sin_port = htons(PMAPPORT); - if ((client = clnttcp_create(&server_addr, PMAPPROG, - PMAPVERS, &sockett, 50, 500)) == NULL) + + to.tv_sec = 5; + to.tv_usec = 0; + + server_addr.sin_port = htons(portnum); + + if ((client = clntudp_create(&server_addr, PMAPPROG, + (u_long)2, to, &sockett)) == NULL) { clnt_pcreateerror("rpcinfo: can't contact portmapper"); exit(1); @@ -606,7 +612,7 @@ { fprintf(stderr, "Usage: rpcinfo [ -n portnum ] -u host prognum [ versnum ]\n"); fprintf(stderr, " rpcinfo [ -n portnum ] -t host prognum [ versnum ]\n"); - fprintf(stderr, " rpcinfo -p [ host ]\n"); + fprintf(stderr, " rpcinfo [ -n portnum ] -p [ host ]\n"); fprintf(stderr, " rpcinfo -b prognum versnum\n"); fprintf(stderr, " rpcinfo -d prognum versnum\n") ; }