1995-02-18 01:27:10 +00:00
|
|
|
/* @(#)rpcinfo.c 2.2 88/08/11 4.0 RPCSRC */
|
|
|
|
#ifndef lint
|
|
|
|
static char sccsid[] = "@(#)rpcinfo.c 1.22 87/08/12 SMI";
|
|
|
|
#endif
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Copyright (C) 1986, Sun Microsystems, Inc.
|
|
|
|
*/
|
|
|
|
|
|
|
|
/*
|
|
|
|
* rpcinfo: ping a particular rpc program
|
|
|
|
* or dump the portmapper
|
|
|
|
*/
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Sun RPC is a product of Sun Microsystems, Inc. and is provided for
|
|
|
|
* unrestricted use provided that this legend is included on all tape
|
|
|
|
* media and as a part of the software program in whole or part. Users
|
|
|
|
* may copy or modify Sun RPC without charge, but are not authorized
|
|
|
|
* to license or distribute it to anyone else except as part of a product or
|
|
|
|
* program developed by the user.
|
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
1995-11-26 17:37:11 +00:00
|
|
|
*
|
1995-02-18 01:27:10 +00:00
|
|
|
* SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
|
|
|
|
* WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
|
|
|
|
* PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
|
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
1995-11-26 17:37:11 +00:00
|
|
|
*
|
1995-02-18 01:27:10 +00:00
|
|
|
* Sun RPC is provided with no support and without any obligation on the
|
|
|
|
* part of Sun Microsystems, Inc. to assist in its use, correction,
|
|
|
|
* modification or enhancement.
|
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
1995-11-26 17:37:11 +00:00
|
|
|
*
|
1995-02-18 01:27:10 +00:00
|
|
|
* SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
|
|
|
|
* INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
|
|
|
|
* OR ANY PART THEREOF.
|
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
1995-11-26 17:37:11 +00:00
|
|
|
*
|
1995-02-18 01:27:10 +00:00
|
|
|
* In no event will Sun Microsystems, Inc. be liable for any lost revenue
|
|
|
|
* or profits or other special, indirect and consequential damages, even if
|
|
|
|
* Sun has been advised of the possibility of such damages.
|
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
1995-11-26 17:37:11 +00:00
|
|
|
*
|
1995-02-18 01:27:10 +00:00
|
|
|
* Sun Microsystems, Inc.
|
|
|
|
* 2550 Garcia Avenue
|
|
|
|
* Mountain View, California 94043
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include <rpc/rpc.h>
|
|
|
|
#include <stdio.h>
|
|
|
|
#include <sys/socket.h>
|
|
|
|
#include <netdb.h>
|
|
|
|
#include <rpc/pmap_prot.h>
|
|
|
|
#include <rpc/pmap_clnt.h>
|
|
|
|
#include <signal.h>
|
|
|
|
#include <ctype.h>
|
|
|
|
|
|
|
|
#define MAXHOSTLEN 256
|
|
|
|
|
|
|
|
#define MIN_VERS ((u_long) 0)
|
|
|
|
#define MAX_VERS ((u_long) 4294967295L)
|
|
|
|
|
|
|
|
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 bool_t reply_proc(/*void *res, struct sockaddr_in *who*/);
|
|
|
|
static void brdcst(/*int argc, char **argv*/);
|
|
|
|
static void deletereg(/* int argc, char **argv */) ;
|
|
|
|
static void usage(/*void*/);
|
|
|
|
static u_long getprognum(/*char *arg*/);
|
|
|
|
static u_long getvers(/*char *arg*/);
|
|
|
|
static void get_inet_address(/*struct sockaddr_in *addr, char *host*/);
|
|
|
|
extern u_long inet_addr(); /* in 4.2BSD, arpa/inet.h called that a in_addr */
|
|
|
|
extern char *inet_ntoa();
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Functions to be performed.
|
|
|
|
*/
|
|
|
|
#define NONE 0 /* no function */
|
|
|
|
#define PMAPDUMP 1 /* dump portmapper registrations */
|
|
|
|
#define TCPPING 2 /* ping TCP service */
|
|
|
|
#define UDPPING 3 /* ping UDP service */
|
|
|
|
#define BRDCST 4 /* ping broadcast UDP service */
|
|
|
|
#define DELETES 5 /* delete registration for the service */
|
|
|
|
|
|
|
|
int
|
|
|
|
main(argc, argv)
|
|
|
|
int argc;
|
|
|
|
char **argv;
|
|
|
|
{
|
|
|
|
register int c;
|
|
|
|
extern char *optarg;
|
|
|
|
extern int optind;
|
|
|
|
int errflg;
|
|
|
|
int function;
|
|
|
|
u_short portnum;
|
|
|
|
|
|
|
|
function = NONE;
|
|
|
|
portnum = 0;
|
|
|
|
errflg = 0;
|
update from main archive 970121
1997-01-21 Paul Eggert <eggert@twinsun.com>
* posix/getopt.c (_getopt_internal): Return -1, not EOF, when args
are exhausted; this is required by POSIX.2.
* catgets/gencat.c, db/makedb.c, locale/programs/locale.c,
locale/programs/localedef.c, manual/examples/subopt.c,
posix/getopt.c, posix/getopt1.c, stdio-common/bug4.c,
sunrpc/rpcinfo.c (main): Check getopt return value against -1, not EOF.
Tue Jan 21 23:10:40 1997 Ulrich Drepper <drepper@cygnus.com>
* version.h (VERSION): Bump to 1.102.
* sysdeps/unix/sysv/linux/alpha/Dist: Add kernel_sigaction.h.
* elf/Makefile: Don't use CFLAGS-dl-load.c, but instead
CPPFLAGS-dl-load.c so that dependencies can be determined correctly.
* elf/dl-load.c: Fix comment.
* time/Banner: New file.
* time/Makefile (distribute): Add Banner.
Update from ADO tzcode1997a and tzdata1997a.
* time/antarctica: Update.
* time/australia: Update.
* time/zdump.c: Update.
* time/zic.c: Update.
* time/zone.tab: Update.
Mon Jan 20 08:38:32 1997 H.J. Lu <hjl@gnu.ai.mit.edu>
* config.make.in (has-ldconfig): New variable.
* configure, configure.in (has_ldconfig): New substitute.
* sysdeps/unix/sysv/linux/configure.in (has_ldconfig): New,
check if $srcdir/elf/ldconfig.c exists.
* Makeconfig (rootsbindir): New, default as
$(exec_prefix)/sbin.
(rtld-version-installed-name): New, default as
ld-$(version).so.
* Makefile (install): Call `$(common-objpfx)elf/ldconfig -d'
only if $(cross-compiling) is no and $(build-shared) is yes.
* Makerules (make-shlib-link): New macro.
($(slibdir)/libfoo.so.$(libfoo.so-version)): Use
$(make-shlib-link) for symlink.
(install-rootsbin, install-rootsbin-nosubdir): New.
(install-no-libc.a-nosubdir): Add
install-rootsbin-nosubdir.
* Rules (others): Add $(install-rootsbin).
* config.make.in (rootsbindir): New.
* configure, configure.in (libc_cv_rootsbindir): New
substitute.
* elf/Makefile (others, install-rootsbin): New, set to
ldconfig.
(+link): New for static linking.
($(slibdir)/$(rtld-version-installed-name)): New.
($(slibdir)/$(rtld-installed-name)): Depend on
$(slibdir)/$(rtld-version-installed-name) and use
$(make-shlib-link) for symlink.
* sunrpc/xdr.c (xdr_string): Return FALSE if sp == NULL
while XDR_ENCODE.
* sysdeps/unix/sysv/linux/a.out.h: Use #include_next for
glibc internals.
* sysdeps/unix/sysv/linux/configure.in (libc_cv_rootsbindir):
New, set to "/sbin" if "$prefix" == "/usr".
Tue Jan 21 13:38:39 1997 Ulrich Drepper <drepper@cygnus.com>
* Makefile (distribute): Add glibcbug.in.
Reported by Philip Blundell <pjb27@cam.ac.uk>.
* elf/Makefile ($(objpfx)trusted-dirs.h): Create elf/ subdir in
build directory if necessary.
Reported by marcus@shannon.sysc.pdx.edu (Marcus G. Daniels).
1997-01-22 05:26:05 +00:00
|
|
|
while ((c = getopt(argc, argv, "ptubdn:")) != -1) {
|
1995-02-18 01:27:10 +00:00
|
|
|
switch (c) {
|
|
|
|
|
|
|
|
case 'p':
|
|
|
|
if (function != NONE)
|
|
|
|
errflg = 1;
|
|
|
|
else
|
|
|
|
function = PMAPDUMP;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 't':
|
|
|
|
if (function != NONE)
|
|
|
|
errflg = 1;
|
|
|
|
else
|
|
|
|
function = TCPPING;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'u':
|
|
|
|
if (function != NONE)
|
|
|
|
errflg = 1;
|
|
|
|
else
|
|
|
|
function = UDPPING;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'b':
|
|
|
|
if (function != NONE)
|
|
|
|
errflg = 1;
|
|
|
|
else
|
|
|
|
function = BRDCST;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'n':
|
|
|
|
portnum = (u_short) atoi(optarg); /* hope we don't get bogus # */
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'd':
|
|
|
|
if (function != NONE)
|
|
|
|
errflg = 1;
|
|
|
|
else
|
|
|
|
function = DELETES;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case '?':
|
|
|
|
errflg = 1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if (errflg || function == NONE) {
|
|
|
|
usage();
|
|
|
|
return (1);
|
|
|
|
}
|
|
|
|
|
|
|
|
switch (function) {
|
|
|
|
|
|
|
|
case PMAPDUMP:
|
|
|
|
if (portnum != 0) {
|
|
|
|
usage();
|
|
|
|
return (1);
|
|
|
|
}
|
|
|
|
pmapdump(argc - optind, argv + optind);
|
|
|
|
break;
|
|
|
|
|
|
|
|
case UDPPING:
|
|
|
|
udpping(portnum, argc - optind, argv + optind);
|
|
|
|
break;
|
|
|
|
|
|
|
|
case TCPPING:
|
|
|
|
tcpping(portnum, argc - optind, argv + optind);
|
|
|
|
break;
|
|
|
|
|
|
|
|
case BRDCST:
|
|
|
|
if (portnum != 0) {
|
|
|
|
usage();
|
|
|
|
return (1);
|
|
|
|
}
|
|
|
|
brdcst(argc - optind, argv + optind);
|
|
|
|
break;
|
|
|
|
|
|
|
|
case DELETES:
|
|
|
|
deletereg(argc - optind, argv + optind);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
return (0);
|
|
|
|
}
|
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
1995-11-26 17:37:11 +00:00
|
|
|
|
1995-02-18 01:27:10 +00:00
|
|
|
static void
|
|
|
|
udpping(portnum, argc, argv)
|
|
|
|
u_short portnum;
|
|
|
|
int argc;
|
|
|
|
char **argv;
|
|
|
|
{
|
|
|
|
struct timeval to;
|
|
|
|
struct sockaddr_in addr;
|
|
|
|
enum clnt_stat rpc_stat;
|
|
|
|
CLIENT *client;
|
|
|
|
u_long prognum, vers, minvers, maxvers;
|
|
|
|
int sock = RPC_ANYSOCK;
|
|
|
|
struct rpc_err rpcerr;
|
|
|
|
int failure;
|
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
1995-11-26 17:37:11 +00:00
|
|
|
|
1995-02-18 01:27:10 +00:00
|
|
|
if (argc < 2 || argc > 3) {
|
|
|
|
usage();
|
|
|
|
exit(1);
|
|
|
|
}
|
|
|
|
prognum = getprognum(argv[1]);
|
|
|
|
get_inet_address(&addr, argv[0]);
|
|
|
|
/* Open the socket here so it will survive calls to clnt_destroy */
|
|
|
|
sock = socket( AF_INET, SOCK_DGRAM, IPPROTO_UDP);
|
|
|
|
if (sock < 0) {
|
|
|
|
perror("rpcinfo: socket");
|
|
|
|
exit(1);
|
|
|
|
}
|
|
|
|
failure = 0;
|
|
|
|
if (argc == 2) {
|
|
|
|
/*
|
|
|
|
* A call to version 0 should fail with a program/version
|
|
|
|
* mismatch, and give us the range of versions supported.
|
|
|
|
*/
|
|
|
|
addr.sin_port = htons(portnum);
|
|
|
|
to.tv_sec = 5;
|
|
|
|
to.tv_usec = 0;
|
|
|
|
if ((client = clntudp_create(&addr, prognum, (u_long)0,
|
|
|
|
to, &sock)) == NULL) {
|
|
|
|
clnt_pcreateerror("rpcinfo");
|
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
1995-11-26 17:37:11 +00:00
|
|
|
printf(_("program %lu is not available\n"),
|
1995-02-18 01:27:10 +00:00
|
|
|
prognum);
|
|
|
|
exit(1);
|
|
|
|
}
|
|
|
|
to.tv_sec = 10;
|
|
|
|
to.tv_usec = 0;
|
|
|
|
rpc_stat = clnt_call(client, NULLPROC, xdr_void, (char *)NULL,
|
|
|
|
xdr_void, (char *)NULL, to);
|
|
|
|
if (rpc_stat == RPC_PROGVERSMISMATCH) {
|
|
|
|
clnt_geterr(client, &rpcerr);
|
|
|
|
minvers = rpcerr.re_vers.low;
|
|
|
|
maxvers = rpcerr.re_vers.high;
|
|
|
|
} else if (rpc_stat == RPC_SUCCESS) {
|
|
|
|
/*
|
|
|
|
* Oh dear, it DOES support version 0.
|
|
|
|
* Let's try version MAX_VERS.
|
|
|
|
*/
|
|
|
|
addr.sin_port = htons(portnum);
|
|
|
|
to.tv_sec = 5;
|
|
|
|
to.tv_usec = 0;
|
|
|
|
if ((client = clntudp_create(&addr, prognum, MAX_VERS,
|
|
|
|
to, &sock)) == NULL) {
|
|
|
|
clnt_pcreateerror("rpcinfo");
|
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
1995-11-26 17:37:11 +00:00
|
|
|
printf(_("program %lu version %lu is not available\n"),
|
1995-02-18 01:27:10 +00:00
|
|
|
prognum, MAX_VERS);
|
|
|
|
exit(1);
|
|
|
|
}
|
|
|
|
to.tv_sec = 10;
|
|
|
|
to.tv_usec = 0;
|
|
|
|
rpc_stat = clnt_call(client, NULLPROC, xdr_void,
|
|
|
|
(char *)NULL, xdr_void, (char *)NULL, to);
|
|
|
|
if (rpc_stat == RPC_PROGVERSMISMATCH) {
|
|
|
|
clnt_geterr(client, &rpcerr);
|
|
|
|
minvers = rpcerr.re_vers.low;
|
|
|
|
maxvers = rpcerr.re_vers.high;
|
|
|
|
} else if (rpc_stat == RPC_SUCCESS) {
|
|
|
|
/*
|
|
|
|
* It also supports version MAX_VERS.
|
|
|
|
* Looks like we have a wise guy.
|
|
|
|
* OK, we give them information on all
|
|
|
|
* 4 billion versions they support...
|
|
|
|
*/
|
|
|
|
minvers = 0;
|
|
|
|
maxvers = MAX_VERS;
|
|
|
|
} else {
|
|
|
|
(void) pstatus(client, prognum, MAX_VERS);
|
|
|
|
exit(1);
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
(void) pstatus(client, prognum, (u_long)0);
|
|
|
|
exit(1);
|
|
|
|
}
|
|
|
|
clnt_destroy(client);
|
|
|
|
for (vers = minvers; vers <= maxvers; vers++) {
|
|
|
|
addr.sin_port = htons(portnum);
|
|
|
|
to.tv_sec = 5;
|
|
|
|
to.tv_usec = 0;
|
|
|
|
if ((client = clntudp_create(&addr, prognum, vers,
|
|
|
|
to, &sock)) == NULL) {
|
|
|
|
clnt_pcreateerror("rpcinfo");
|
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
1995-11-26 17:37:11 +00:00
|
|
|
printf(_("program %lu version %lu is not available\n"),
|
1995-02-18 01:27:10 +00:00
|
|
|
prognum, vers);
|
|
|
|
exit(1);
|
|
|
|
}
|
|
|
|
to.tv_sec = 10;
|
|
|
|
to.tv_usec = 0;
|
|
|
|
rpc_stat = clnt_call(client, NULLPROC, xdr_void,
|
|
|
|
(char *)NULL, xdr_void, (char *)NULL, to);
|
|
|
|
if (pstatus(client, prognum, vers) < 0)
|
|
|
|
failure = 1;
|
|
|
|
clnt_destroy(client);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
vers = getvers(argv[2]);
|
|
|
|
addr.sin_port = htons(portnum);
|
|
|
|
to.tv_sec = 5;
|
|
|
|
to.tv_usec = 0;
|
|
|
|
if ((client = clntudp_create(&addr, prognum, vers,
|
|
|
|
to, &sock)) == NULL) {
|
|
|
|
clnt_pcreateerror("rpcinfo");
|
|
|
|
printf("program %lu version %lu is not available\n",
|
|
|
|
prognum, vers);
|
|
|
|
exit(1);
|
|
|
|
}
|
|
|
|
to.tv_sec = 10;
|
|
|
|
to.tv_usec = 0;
|
|
|
|
rpc_stat = clnt_call(client, 0, xdr_void, (char *)NULL,
|
|
|
|
xdr_void, (char *)NULL, to);
|
|
|
|
if (pstatus(client, prognum, vers) < 0)
|
|
|
|
failure = 1;
|
|
|
|
}
|
|
|
|
(void) close(sock); /* Close it up again */
|
|
|
|
if (failure)
|
|
|
|
exit(1);
|
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
|
|
|
tcpping(portnum, argc, argv)
|
|
|
|
u_short portnum;
|
|
|
|
int argc;
|
|
|
|
char **argv;
|
|
|
|
{
|
|
|
|
struct timeval to;
|
|
|
|
struct sockaddr_in addr;
|
|
|
|
enum clnt_stat rpc_stat;
|
|
|
|
CLIENT *client;
|
|
|
|
u_long prognum, vers, minvers, maxvers;
|
|
|
|
int sock = RPC_ANYSOCK;
|
|
|
|
struct rpc_err rpcerr;
|
|
|
|
int failure;
|
|
|
|
|
|
|
|
if (argc < 2 || argc > 3) {
|
|
|
|
usage();
|
|
|
|
exit(1);
|
|
|
|
}
|
|
|
|
prognum = getprognum(argv[1]);
|
|
|
|
get_inet_address(&addr, argv[0]);
|
|
|
|
failure = 0;
|
|
|
|
if (argc == 2) {
|
|
|
|
/*
|
|
|
|
* A call to version 0 should fail with a program/version
|
|
|
|
* mismatch, and give us the range of versions supported.
|
|
|
|
*/
|
|
|
|
addr.sin_port = htons(portnum);
|
|
|
|
if ((client = clnttcp_create(&addr, prognum, MIN_VERS,
|
|
|
|
&sock, 0, 0)) == NULL) {
|
|
|
|
clnt_pcreateerror("rpcinfo");
|
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
1995-11-26 17:37:11 +00:00
|
|
|
printf(_("program %lu is not available\n"),
|
1995-02-18 01:27:10 +00:00
|
|
|
prognum);
|
|
|
|
exit(1);
|
|
|
|
}
|
|
|
|
to.tv_sec = 10;
|
|
|
|
to.tv_usec = 0;
|
|
|
|
rpc_stat = clnt_call(client, NULLPROC, xdr_void, (char *)NULL,
|
|
|
|
xdr_void, (char *)NULL, to);
|
|
|
|
if (rpc_stat == RPC_PROGVERSMISMATCH) {
|
|
|
|
clnt_geterr(client, &rpcerr);
|
|
|
|
minvers = rpcerr.re_vers.low;
|
|
|
|
maxvers = rpcerr.re_vers.high;
|
|
|
|
} else if (rpc_stat == RPC_SUCCESS) {
|
|
|
|
/*
|
|
|
|
* Oh dear, it DOES support version 0.
|
|
|
|
* Let's try version MAX_VERS.
|
|
|
|
*/
|
|
|
|
addr.sin_port = htons(portnum);
|
|
|
|
if ((client = clnttcp_create(&addr, prognum, MAX_VERS,
|
|
|
|
&sock, 0, 0)) == NULL) {
|
|
|
|
clnt_pcreateerror("rpcinfo");
|
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
1995-11-26 17:37:11 +00:00
|
|
|
printf(_("program %lu version %lu is not available\n"),
|
1995-02-18 01:27:10 +00:00
|
|
|
prognum, MAX_VERS);
|
|
|
|
exit(1);
|
|
|
|
}
|
|
|
|
to.tv_sec = 10;
|
|
|
|
to.tv_usec = 0;
|
|
|
|
rpc_stat = clnt_call(client, NULLPROC, xdr_void,
|
|
|
|
(char *)NULL, xdr_void, (char *)NULL, to);
|
|
|
|
if (rpc_stat == RPC_PROGVERSMISMATCH) {
|
|
|
|
clnt_geterr(client, &rpcerr);
|
|
|
|
minvers = rpcerr.re_vers.low;
|
|
|
|
maxvers = rpcerr.re_vers.high;
|
|
|
|
} else if (rpc_stat == RPC_SUCCESS) {
|
|
|
|
/*
|
|
|
|
* It also supports version MAX_VERS.
|
|
|
|
* Looks like we have a wise guy.
|
|
|
|
* OK, we give them information on all
|
|
|
|
* 4 billion versions they support...
|
|
|
|
*/
|
|
|
|
minvers = 0;
|
|
|
|
maxvers = MAX_VERS;
|
|
|
|
} else {
|
|
|
|
(void) pstatus(client, prognum, MAX_VERS);
|
|
|
|
exit(1);
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
(void) pstatus(client, prognum, MIN_VERS);
|
|
|
|
exit(1);
|
|
|
|
}
|
|
|
|
clnt_destroy(client);
|
|
|
|
(void) close(sock);
|
|
|
|
sock = RPC_ANYSOCK; /* Re-initialize it for later */
|
|
|
|
for (vers = minvers; vers <= maxvers; vers++) {
|
|
|
|
addr.sin_port = htons(portnum);
|
|
|
|
if ((client = clnttcp_create(&addr, prognum, vers,
|
|
|
|
&sock, 0, 0)) == NULL) {
|
|
|
|
clnt_pcreateerror("rpcinfo");
|
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
1995-11-26 17:37:11 +00:00
|
|
|
printf(_("program %lu version %lu is not available\n"),
|
1995-02-18 01:27:10 +00:00
|
|
|
prognum, vers);
|
|
|
|
exit(1);
|
|
|
|
}
|
|
|
|
to.tv_usec = 0;
|
|
|
|
to.tv_sec = 10;
|
|
|
|
rpc_stat = clnt_call(client, 0, xdr_void, (char *)NULL,
|
|
|
|
xdr_void, (char *)NULL, to);
|
|
|
|
if (pstatus(client, prognum, vers) < 0)
|
|
|
|
failure = 1;
|
|
|
|
clnt_destroy(client);
|
|
|
|
(void) close(sock);
|
|
|
|
sock = RPC_ANYSOCK;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
vers = getvers(argv[2]);
|
|
|
|
addr.sin_port = htons(portnum);
|
|
|
|
if ((client = clnttcp_create(&addr, prognum, vers, &sock,
|
|
|
|
0, 0)) == NULL) {
|
|
|
|
clnt_pcreateerror("rpcinfo");
|
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
1995-11-26 17:37:11 +00:00
|
|
|
printf(_("program %lu version %lu is not available\n"),
|
1995-02-18 01:27:10 +00:00
|
|
|
prognum, vers);
|
|
|
|
exit(1);
|
|
|
|
}
|
|
|
|
to.tv_usec = 0;
|
|
|
|
to.tv_sec = 10;
|
|
|
|
rpc_stat = clnt_call(client, 0, xdr_void, (char *)NULL,
|
|
|
|
xdr_void, (char *)NULL, to);
|
|
|
|
if (pstatus(client, prognum, vers) < 0)
|
|
|
|
failure = 1;
|
|
|
|
}
|
|
|
|
if (failure)
|
|
|
|
exit(1);
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
* This routine should take a pointer to an "rpc_err" structure, rather than
|
|
|
|
* a pointer to a CLIENT structure, but "clnt_perror" takes a pointer to
|
|
|
|
* a CLIENT structure rather than a pointer to an "rpc_err" structure.
|
|
|
|
* As such, we have to keep the CLIENT structure around in order to print
|
|
|
|
* a good error message.
|
|
|
|
*/
|
|
|
|
static int
|
|
|
|
pstatus(client, prognum, vers)
|
|
|
|
register CLIENT *client;
|
|
|
|
u_long prognum;
|
|
|
|
u_long vers;
|
|
|
|
{
|
|
|
|
struct rpc_err rpcerr;
|
|
|
|
|
|
|
|
clnt_geterr(client, &rpcerr);
|
|
|
|
if (rpcerr.re_status != RPC_SUCCESS) {
|
|
|
|
clnt_perror(client, "rpcinfo");
|
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
1995-11-26 17:37:11 +00:00
|
|
|
printf(_("program %lu version %lu is not available\n"),
|
1995-02-18 01:27:10 +00:00
|
|
|
prognum, vers);
|
|
|
|
return (-1);
|
|
|
|
} else {
|
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
1995-11-26 17:37:11 +00:00
|
|
|
printf(_("program %lu version %lu ready and waiting\n"),
|
1995-02-18 01:27:10 +00:00
|
|
|
prognum, vers);
|
|
|
|
return (0);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
|
|
|
pmapdump(argc, argv)
|
|
|
|
int argc;
|
|
|
|
char **argv;
|
|
|
|
{
|
|
|
|
struct sockaddr_in server_addr;
|
|
|
|
register struct hostent *hp;
|
|
|
|
struct pmaplist *head = NULL;
|
|
|
|
int socket = RPC_ANYSOCK;
|
|
|
|
struct timeval minutetimeout;
|
|
|
|
register CLIENT *client;
|
|
|
|
struct rpcent *rpc;
|
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
1995-11-26 17:37:11 +00:00
|
|
|
|
1995-02-18 01:27:10 +00:00
|
|
|
if (argc > 1) {
|
|
|
|
usage();
|
|
|
|
exit(1);
|
|
|
|
}
|
|
|
|
if (argc == 1)
|
|
|
|
get_inet_address(&server_addr, argv[0]);
|
|
|
|
else {
|
|
|
|
bzero((char *)&server_addr, sizeof server_addr);
|
|
|
|
server_addr.sin_family = AF_INET;
|
|
|
|
if ((hp = gethostbyname("localhost")) != NULL)
|
|
|
|
bcopy(hp->h_addr, (caddr_t)&server_addr.sin_addr,
|
|
|
|
hp->h_length);
|
|
|
|
else
|
|
|
|
server_addr.sin_addr.s_addr = inet_addr("0.0.0.0");
|
|
|
|
}
|
|
|
|
minutetimeout.tv_sec = 60;
|
|
|
|
minutetimeout.tv_usec = 0;
|
|
|
|
server_addr.sin_port = htons(PMAPPORT);
|
|
|
|
if ((client = clnttcp_create(&server_addr, PMAPPROG,
|
|
|
|
PMAPVERS, &socket, 50, 500)) == NULL) {
|
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
1995-11-26 17:37:11 +00:00
|
|
|
clnt_pcreateerror(_("rpcinfo: can't contact portmapper"));
|
1995-02-18 01:27:10 +00:00
|
|
|
exit(1);
|
|
|
|
}
|
|
|
|
if (clnt_call(client, PMAPPROC_DUMP, xdr_void, NULL,
|
|
|
|
xdr_pmaplist, &head, minutetimeout) != RPC_SUCCESS) {
|
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
1995-11-26 17:37:11 +00:00
|
|
|
fprintf(stderr, _("rpcinfo: can't contact portmapper: "));
|
1995-02-18 01:27:10 +00:00
|
|
|
clnt_perror(client, "rpcinfo");
|
|
|
|
exit(1);
|
|
|
|
}
|
|
|
|
if (head == NULL) {
|
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
1995-11-26 17:37:11 +00:00
|
|
|
printf(_("No remote programs registered.\n"));
|
1995-02-18 01:27:10 +00:00
|
|
|
} else {
|
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
1995-11-26 17:37:11 +00:00
|
|
|
printf(_(" program vers proto port\n"));
|
1995-02-18 01:27:10 +00:00
|
|
|
for (; head != NULL; head = head->pml_next) {
|
|
|
|
printf("%10ld%5ld",
|
|
|
|
head->pml_map.pm_prog,
|
|
|
|
head->pml_map.pm_vers);
|
|
|
|
if (head->pml_map.pm_prot == IPPROTO_UDP)
|
|
|
|
printf("%6s", "udp");
|
|
|
|
else if (head->pml_map.pm_prot == IPPROTO_TCP)
|
|
|
|
printf("%6s", "tcp");
|
|
|
|
else
|
|
|
|
printf("%6ld", head->pml_map.pm_prot);
|
|
|
|
printf("%7ld", head->pml_map.pm_port);
|
|
|
|
rpc = getrpcbynumber(head->pml_map.pm_prog);
|
|
|
|
if (rpc)
|
|
|
|
printf(" %s\n", rpc->r_name);
|
|
|
|
else
|
|
|
|
printf("\n");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
1995-11-26 17:37:11 +00:00
|
|
|
/*
|
|
|
|
* reply_proc collects replies from the broadcast.
|
1995-02-18 01:27:10 +00:00
|
|
|
* to get a unique list of responses the output of rpcinfo should
|
|
|
|
* be piped through sort(1) and then uniq(1).
|
|
|
|
*/
|
|
|
|
|
|
|
|
/*ARGSUSED*/
|
|
|
|
static bool_t
|
|
|
|
reply_proc(res, who)
|
|
|
|
void *res; /* Nothing comes back */
|
|
|
|
struct sockaddr_in *who; /* Who sent us the reply */
|
|
|
|
{
|
|
|
|
register struct hostent *hp;
|
|
|
|
|
|
|
|
hp = gethostbyaddr((char *) &who->sin_addr, sizeof who->sin_addr,
|
|
|
|
AF_INET);
|
|
|
|
printf("%s %s\n", inet_ntoa(who->sin_addr),
|
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
1995-11-26 17:37:11 +00:00
|
|
|
(hp == NULL) ? _("(unknown)") : hp->h_name);
|
1995-02-18 01:27:10 +00:00
|
|
|
return(FALSE);
|
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
|
|
|
brdcst(argc, argv)
|
|
|
|
int argc;
|
|
|
|
char **argv;
|
|
|
|
{
|
|
|
|
enum clnt_stat rpc_stat;
|
|
|
|
u_long prognum, vers;
|
|
|
|
|
|
|
|
if (argc != 2) {
|
|
|
|
usage();
|
|
|
|
exit(1);
|
|
|
|
}
|
|
|
|
prognum = getprognum(argv[0]);
|
|
|
|
vers = getvers(argv[1]);
|
|
|
|
rpc_stat = clnt_broadcast(prognum, vers, NULLPROC, xdr_void,
|
|
|
|
(char *)NULL, xdr_void, (char *)NULL, reply_proc);
|
|
|
|
if ((rpc_stat != RPC_SUCCESS) && (rpc_stat != RPC_TIMEDOUT)) {
|
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
1995-11-26 17:37:11 +00:00
|
|
|
fprintf(stderr, _("rpcinfo: broadcast failed: %s\n"),
|
1995-02-18 01:27:10 +00:00
|
|
|
clnt_sperrno(rpc_stat));
|
|
|
|
exit(1);
|
|
|
|
}
|
|
|
|
exit(0);
|
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
|
|
|
deletereg(argc, argv)
|
|
|
|
int argc;
|
|
|
|
char **argv;
|
|
|
|
{ u_long prog_num, version_num ;
|
|
|
|
|
|
|
|
if (argc != 2) {
|
|
|
|
usage() ;
|
|
|
|
exit(1) ;
|
|
|
|
}
|
|
|
|
if (getuid()) { /* This command allowed only to root */
|
|
|
|
fprintf(stderr, "Sorry. You are not root\n") ;
|
|
|
|
exit(1) ;
|
|
|
|
}
|
|
|
|
prog_num = getprognum(argv[0]);
|
|
|
|
version_num = getvers(argv[1]);
|
|
|
|
if ((pmap_unset(prog_num, version_num)) == 0) {
|
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
1995-11-26 17:37:11 +00:00
|
|
|
fprintf(stderr, _("rpcinfo: Could not delete registration for prog %s version %s\n"),
|
1995-02-18 01:27:10 +00:00
|
|
|
argv[0], argv[1]) ;
|
|
|
|
exit(1) ;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
|
|
|
usage()
|
|
|
|
{
|
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
1995-11-26 17:37:11 +00:00
|
|
|
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 -b prognum versnum\n"));
|
|
|
|
fprintf(stderr, _(" rpcinfo -d prognum versnum\n")) ;
|
1995-02-18 01:27:10 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static u_long
|
|
|
|
getprognum(arg)
|
|
|
|
char *arg;
|
|
|
|
{
|
|
|
|
register struct rpcent *rpc;
|
|
|
|
register u_long prognum;
|
|
|
|
|
|
|
|
if (isalpha(*arg)) {
|
|
|
|
rpc = getrpcbyname(arg);
|
|
|
|
if (rpc == NULL) {
|
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
1995-11-26 17:37:11 +00:00
|
|
|
fprintf(stderr, _("rpcinfo: %s is unknown service\n"),
|
1995-02-18 01:27:10 +00:00
|
|
|
arg);
|
|
|
|
exit(1);
|
|
|
|
}
|
|
|
|
prognum = rpc->r_number;
|
|
|
|
} else {
|
|
|
|
prognum = (u_long) atoi(arg);
|
|
|
|
}
|
|
|
|
|
|
|
|
return (prognum);
|
|
|
|
}
|
|
|
|
|
|
|
|
static u_long
|
|
|
|
getvers(arg)
|
|
|
|
char *arg;
|
|
|
|
{
|
|
|
|
register u_long vers;
|
|
|
|
|
|
|
|
vers = (int) atoi(arg);
|
|
|
|
return (vers);
|
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
|
|
|
get_inet_address(addr, host)
|
|
|
|
struct sockaddr_in *addr;
|
|
|
|
char *host;
|
|
|
|
{
|
|
|
|
register struct hostent *hp;
|
|
|
|
|
|
|
|
bzero((char *)addr, sizeof *addr);
|
|
|
|
addr->sin_addr.s_addr = (u_long) inet_addr(host);
|
|
|
|
if (addr->sin_addr.s_addr == -1 || addr->sin_addr.s_addr == 0) {
|
|
|
|
if ((hp = gethostbyname(host)) == NULL) {
|
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
Sat Nov 25 02:48:47 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* assert/assert-perr.c, assert/assert.c, inet/rcmd.c,
malloc/mcheck.c, malloc/vm-limit.c, posix/getconf.c, posix/id.c,
resolv/herror.c, sunrpc/auth_unix.c, sunrpc/clnt_perr.c,
sunrpc/clnt_raw.c, sunrpc/get_myaddr.c, sunrpc/pmap_clnt.c,
sunrpc/pmap_rmt.c, sunrpc/portmap.c, sunrpc/rpc_main.c,
sunrpc/rpc_parse.c, sunrpc/rpc_scan.c, sunrpc/rpc_util.c,
sunrpc/rpcinfo.c, sunrpc/svc_simple.c, sunrpc/svc_tcp.c,
sunrpc/svc_udp.c, time/zdump.c, time/zic.c: Mark translatable
strings.
1995-11-26 17:37:11 +00:00
|
|
|
fprintf(stderr, _("rpcinfo: %s is unknown host\n"),
|
|
|
|
host);
|
1995-02-18 01:27:10 +00:00
|
|
|
exit(1);
|
|
|
|
}
|
|
|
|
bcopy(hp->h_addr, (char *)&addr->sin_addr, hp->h_length);
|
|
|
|
}
|
|
|
|
addr->sin_family = AF_INET;
|
|
|
|
}
|