COPT = $(CONST) $(HOSTS_ACCESS) $(CHECK_PORT) \
$(SYS) -DFACILITY=$(FACILITY) $(ULONG) $(ZOMBIES) $(SA_LEN) \
$(LOOPBACK) $(SETPGRP)
-CFLAGS = $(COPT) -O $(NSARCHS)
+CFLAGS = $(COPT) -O $(NSARCHS) -Wall -Wstrict-prototypes
OBJECTS = portmap.o pmap_check.o from_local.o
all: portmap pmap_dump pmap_set
*/
#ifndef lint
-static char sccsid[] = "@(#) from_local.c 1.3 96/05/31 15:52:57";
+static __attribute__((__used__)) char
+sccsid[] = "@(#) from_local.c 1.3 96/05/31 15:52:57";
#endif
#include <sys/types.h>
/* grow_addrs - extend list of local interface addresses */
-static int grow_addrs()
+static int grow_addrs(void)
{
struct in_addr *new_addrs;
int new_num;
/* find_local - find all IP addresses for this host */
-find_local()
+static int
+find_local(void)
{
struct ifconf ifc;
struct ifreq ifreq;
/* from_local - determine whether request comes from the local system */
-from_local(addr)
-struct sockaddr_in *addr;
+int from_local(struct sockaddr_in *addr)
{
int i;
*/
#ifndef lint
-static char sccsid[] = "@(#) pmap_check.c 1.8 96/07/07 10:49:10";
+static __attribute__((__used__)) char
+sccsid[] = "@(#) pmap_check.c 1.8 96/07/07 10:49:10";
#endif
+#include <sys/types.h>
+#include <unistd.h>
#include <rpc/rpc.h>
#include <rpc/pmap_prot.h>
#include <syslog.h>
#include <netinet/in.h>
#include <rpc/rpcent.h>
#endif
-
-extern char *inet_ntoa();
+#include <tcpd.h>
+#include <arpa/inet.h>
#include "pmap_check.h"
#define MOUNTPROC_MNT ((u_long) 1)
#define NFS_PORT 2049
-static void logit();
-static void toggle_verboselog();
+static void logit(int severity, struct sockaddr_in *addr,
+ u_long procnum, u_long prognum, char *text);
+static void toggle_verboselog(int sig);
int verboselog = 0;
int allow_severity = LOG_INFO;
int deny_severity = LOG_WARNING;
/* check_startup - additional startup code */
-void check_startup()
+void check_startup(void)
{
/*
/* check_default - additional checks for NULL, DUMP, GETPORT and unknown */
-check_default(addr, proc, prog)
-struct sockaddr_in *addr;
-u_long proc;
-u_long prog;
+int
+check_default(struct sockaddr_in *addr, u_long proc,
+ u_long prog)
{
#ifdef HOSTS_ACCESS
if (!(from_local(addr) || good_client(addr))) {
/* check_privileged_port - additional checks for privileged-port updates */
-check_privileged_port(addr, proc, prog, port)
-struct sockaddr_in *addr;
-u_long proc;
-u_long prog;
-u_long port;
+int
+check_privileged_port(struct sockaddr_in *addr, u_long proc,
+ u_long prog, u_long port)
{
#ifdef CHECK_PORT
if (!legal_port(addr, port)) {
#ifdef LOOPBACK_SETUNSET
-check_setunset(xprt, ludp_xprt, ltcp_xprt, proc, prog, port)
-SVCXPRT *xprt;
-SVCXPRT *ludp_xprt;
-SVCXPRT *ltcp_xprt;
-u_long proc;
-u_long prog;
-u_long port;
+int
+check_setunset(SVCXPRT *xprt, SVCXPRT *ludp_xprt, SVCXPRT *ltcp_xprt,
+ u_long proc, u_long prog, u_long port)
{
struct sockaddr_in *addr = svc_getcaller(xprt);
#else
-check_setunset(addr, proc, prog, port)
-struct sockaddr_in *addr;
-u_long proc;
-u_long prog;
-u_long port;
+int
+check_setunset(struct sockaddr_in *addr, u_long proc,
+ u_long prog, u_long port)
{
if (!from_local(addr)) {
#ifdef HOSTS_ACCESS
/* check_callit - additional checks for forwarded requests */
-check_callit(addr, proc, prog, aproc)
-struct sockaddr_in *addr;
-u_long proc;
-u_long prog;
-u_long aproc;
+int
+check_callit(struct sockaddr_in *addr, u_long proc,
+ u_long prog, u_long aproc)
{
#ifdef HOSTS_ACCESS
if (!(from_local(addr) || good_client(addr))) {
/* toggle_verboselog - toggle verbose logging flag */
-static void toggle_verboselog(sig)
-int sig;
+static void toggle_verboselog(int sig)
{
(void) signal(sig, toggle_verboselog);
verboselog = !verboselog;
/* logit - report events of interest via the syslog daemon */
-static void logit(severity, addr, procnum, prognum, text)
-int severity;
-struct sockaddr_in *addr;
-u_long procnum;
-u_long prognum;
-char *text;
+static void logit(int severity, struct sockaddr_in *addr,
+ u_long procnum, u_long prognum, char *text)
{
char *procname;
char procbuf[4 * sizeof(u_long)];
};
struct proc_map *procp;
static struct proc_map procmap[] = {
- PMAPPROC_CALLIT, "callit",
- PMAPPROC_DUMP, "dump",
- PMAPPROC_GETPORT, "getport",
- PMAPPROC_NULL, "null",
- PMAPPROC_SET, "set",
- PMAPPROC_UNSET, "unset",
- 0, 0,
+ { PMAPPROC_CALLIT, "callit" },
+ { PMAPPROC_DUMP, "dump"} ,
+ { PMAPPROC_GETPORT, "getport"} ,
+ { PMAPPROC_NULL, "null"} ,
+ { PMAPPROC_SET, "set"} ,
+ { PMAPPROC_UNSET, "unset"} ,
+ { 0, 0} ,
};
/*
if (prognum == 0) {
progname = "";
- } else if (rpc = getrpcbynumber((int) prognum)) {
+ } else if ((rpc = getrpcbynumber((int) prognum))) {
progname = rpc->r_name;
} else {
sprintf(progname = progbuf, "%lu", prognum);
/* @(#) pmap_check.h 1.4 96/07/06 23:06:22 */
-extern int from_local();
-extern void check_startup();
-extern int check_default();
-extern int check_setunset();
-extern int check_privileged_port();
-extern int check_callit();
+extern int from_local(struct sockaddr_in *addr);
+extern void check_startup(void);
+extern int check_default(struct sockaddr_in *addr,
+ u_long proc, u_long prog);
+#ifdef LOOPBACK_SETUNSET
+extern int
+check_setunset(SVCXPRT *xprt, SVCXPRT *ludp_xprt, SVCXPRT *ltcp_xprt,
+ u_long proc, u_long prog, u_long port);
+#else
+extern int
+check_setunset(struct sockaddr_in *addr, u_long proc,
+ u_long prog, u_long port);
+#endif
+extern int check_privileged_port(struct sockaddr_in *addr,
+ u_long proc,
+ u_long prog, u_long port);
+extern int check_callit(struct sockaddr_in *addr, u_long proc,
+ u_long prog, u_long aproc);
extern int verboselog;
extern int allow_severity;
extern int deny_severity;
*/
#ifndef lint
-static char sccsid[] = "@(#) pmap_dump.c 1.1 92/06/11 22:53:15";
+static __attribute__((__used__)) char
+sccsid[] = "@(#) pmap_dump.c 1.1 92/06/11 22:53:15";
#endif
#include <stdio.h>
#include <rpc/pmap_clnt.h>
#include <rpc/pmap_prot.h>
-static char *protoname();
+static char *protoname(u_long proto);
-main(argc, argv)
-int argc;
-char **argv;
+int
+main(int argc, char **argv)
{
struct sockaddr_in addr;
register struct pmaplist *list;
return (fclose(stdout) ? (perror(argv[0]), 1) : 0);
}
-static char *protoname(proto)
-u_long proto;
+static char *protoname(u_long proto)
{
static char buf[BUFSIZ];
*/
#ifndef lint
-static char sccsid[] = "@(#) pmap_set.c 1.2 96/07/06 23:06:23";
+static __attribute__((__used__)) char
+sccsid[] = "@(#) pmap_set.c 1.2 96/07/06 23:06:23";
#endif
#include <stdio.h>
#include <rpc/rpc.h>
#include <rpc/pmap_clnt.h>
-main(argc, argv)
-int argc;
-char **argv;
+static int
+parse_line(char *buf, u_long *prog, u_long *vers,
+ int *prot, unsigned *port);
+
+int
+main(int argc, char **argv)
{
char buf[BUFSIZ];
u_long prog;
/* parse_line - convert line to numbers */
-parse_line(buf, prog, vers, prot, port)
-char *buf;
-u_long *prog;
-u_long *vers;
-int *prot;
-unsigned *port;
+static int
+parse_line(char *buf, u_long *prog, u_long *vers,
+ int *prot, unsigned *port)
{
char proto_name[BUFSIZ];
#endif /* not lint */
#ifndef lint
-static char sccsid[] = "@(#) portmap.c 1.6 96/07/06 23:06:23";
+static __attribute__((__used__)) char
+sccsid[] = "@(#) portmap.c 1.6 96/07/06 23:06:23";
#endif /* not lint */
/*
#include <netinet/in.h>
#endif
-extern char *strerror();
#include <stdlib.h>
#ifndef LOG_PERROR
#define setsid() setpgrp(0,0)
#endif
-void reg_service();
-void reap();
-static void callit();
+static void reg_service(struct svc_req *rqstp, SVCXPRT *xprt);
+static void reap(int);
+static void callit(struct svc_req *rqstp, SVCXPRT *xprt);
struct pmaplist *pmaplist;
int debugging = 0;
-extern int errno;
#include "pmap_check.h"
#endif
#endif
-main(argc, argv)
- int argc;
- char **argv;
+int
+main(int argc, char **argv)
{
SVCXPRT *xprt;
int sock, c;
}
static struct pmaplist *
-find_service(prog, vers, prot)
- u_long prog, vers, prot;
+find_service(u_long prog, u_long vers, u_long prot)
{
register struct pmaplist *hit = NULL;
register struct pmaplist *pml;
/*
* 1 OK, 0 not
*/
-void
-reg_service(rqstp, xprt)
- struct svc_req *rqstp;
- SVCXPRT *xprt;
+static void reg_service(struct svc_req *rqstp, SVCXPRT *xprt)
{
struct pmap reg;
struct pmaplist *pml, *prevpml, *fnd;
};
static bool_t
-xdr_encap_parms(xdrs, epp)
- XDR *xdrs;
- struct encap_parms *epp;
+xdr_encap_parms(XDR *xdrs, struct encap_parms *epp)
{
return (xdr_bytes(xdrs, &(epp->args), &(epp->arglen), ARGSIZE));
};
static bool_t
-xdr_rmtcall_args(xdrs, cap)
- register XDR *xdrs;
- register struct rmtcallargs *cap;
+xdr_rmtcall_args(XDR *xdrs, struct rmtcallargs *cap)
{
/* does not get a port number */
}
static bool_t
-xdr_rmtcall_result(xdrs, cap)
- register XDR *xdrs;
- register struct rmtcallargs *cap;
+xdr_rmtcall_result(XDR *xdrs, struct rmtcallargs *cap)
{
if (xdr_u_long(xdrs, &(cap->rmt_port)))
return (xdr_encap_parms(xdrs, &(cap->rmt_args)));
* The arglen must already be set!!
*/
static bool_t
-xdr_opaque_parms(xdrs, cap)
- XDR *xdrs;
- struct rmtcallargs *cap;
+xdr_opaque_parms(XDR *xdrs, struct rmtcallargs *cap)
{
return (xdr_opaque(xdrs, cap->rmt_args.args, cap->rmt_args.arglen));
* and then calls xdr_opaque_parms.
*/
static bool_t
-xdr_len_opaque_parms(xdrs, cap)
- register XDR *xdrs;
- struct rmtcallargs *cap;
+xdr_len_opaque_parms(register XDR *xdrs, struct rmtcallargs *cap)
{
register u_int beginpos, lowpos, highpos, currpos, pos;
* This now forks so that the program & process that it calls can call
* back to the portmapper.
*/
-static void
-callit(rqstp, xprt)
- struct svc_req *rqstp;
- SVCXPRT *xprt;
+static void callit(struct svc_req *rqstp, SVCXPRT *xprt)
{
struct rmtcallargs a;
struct pmaplist *pml;
exit(0);
}
-void
-reap()
+static void reap(int ignore)
{
while (wait3((int *)NULL, WNOHANG, (struct rusage *)NULL) > 0);
}