2 * pmap_dump - dump portmapper table in format readable by pmap_set
4 * Author: Wietse Venema (wietse@wzv.win.tue.nl), dept. of Mathematics and
5 * Computing Science, Eindhoven University of Technology, The Netherlands.
9 * @(#) pmap_dump.c 1.1 92/06/11 22:53:15
10 * $FreeBSD: src/usr.sbin/portmap/pmap_dump/pmap_dump.c,v 1.6 2000/01/15 23:08:30 brian Exp $
11 * $DragonFly: src/usr.sbin/portmap/pmap_dump/pmap_dump.c,v 1.4 2004/03/30 02:59:00 cpressey Exp $
14 #include <sys/types.h>
16 #include <netinet/in.h>
17 #include <rpc/rpcent.h>
22 #include <rpc/pmap_clnt.h>
23 #include <rpc/pmap_prot.h>
27 static const char *protoname(u_long
);
30 main(int argc
, char **argv
)
32 struct sockaddr_in addr
;
33 struct pmaplist
*list
;
38 for (list
= pmap_getmaps(&addr
); list
; list
= list
->pml_next
) {
39 rpc
= getrpcbynumber((int) list
->pml_map
.pm_prog
);
40 printf("%10lu %4lu %5s %6lu %s\n",
41 list
->pml_map
.pm_prog
,
42 list
->pml_map
.pm_vers
,
43 protoname(list
->pml_map
.pm_prot
),
44 list
->pml_map
.pm_port
,
45 rpc
? rpc
->r_name
: "");
48 return (fclose(stdout
) ? (perror(argv
[0]), 1) : 0);
52 protoname(u_long proto
)
54 static char buf
[BUFSIZ
];
62 sprintf(buf
, "%lu", proto
);