Adapt for new RPC interface.

This commit is contained in:
fvdl 2000-06-02 23:20:18 +00:00
parent b992cb1db9
commit ed2c47f74f
2 changed files with 53 additions and 27 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: rstat_proc.c,v 1.30 2000/05/29 11:30:30 simonb Exp $ */
/* $NetBSD: rstat_proc.c,v 1.31 2000/06/02 23:20:18 fvdl Exp $ */
/*
* Sun RPC is a product of Sun Microsystems, Inc. and is provided for
@ -35,7 +35,7 @@
static char sccsid[] = "from: @(#)rpc.rstatd.c 1.1 86/09/25 Copyr 1984 Sun Micro";
static char sccsid[] = "from: @(#)rstat_proc.c 2.2 88/08/01 4.0 RPCSRC";
#else
__RCSID("$NetBSD: rstat_proc.c,v 1.30 2000/05/29 11:30:30 simonb Exp $");
__RCSID("$NetBSD: rstat_proc.c,v 1.31 2000/06/02 23:20:18 fvdl Exp $");
#endif
#endif
@ -397,6 +397,7 @@ rstat_service(rqstp, transp)
xdrproc_t xdr_argument, xdr_result;
char *(*local) __P((void *, struct svc_req *));
printf("rstat_service(%u)\n", rqstp->rq_proc);
switch (rqstp->rq_proc) {
case NULLPROC:
(void)svc_sendreply(transp, xdr_void, (char *)NULL);

View File

@ -1,4 +1,4 @@
/* $NetBSD: rstatd.c,v 1.9 1999/01/31 08:51:53 mrg Exp $ */
/* $NetBSD: rstatd.c,v 1.10 2000/06/02 23:20:19 fvdl Exp $ */
/*-
* Copyright (c) 1993, John Brezak
@ -35,7 +35,7 @@
#include <sys/cdefs.h>
#ifndef lint
__RCSID("$NetBSD: rstatd.c,v 1.9 1999/01/31 08:51:53 mrg Exp $");
__RCSID("$NetBSD: rstatd.c,v 1.10 2000/06/02 23:20:19 fvdl Exp $");
#endif /* not lint */
#include <sys/types.h>
@ -72,8 +72,6 @@ main(argc, argv)
char *argv[];
{
SVCXPRT *transp;
int sock = 0;
int proto = 0;
struct sockaddr_in from;
int fromlen;
@ -86,14 +84,11 @@ main(argc, argv)
* See if inetd started us
*/
fromlen = sizeof(from);
if (getsockname(0, (struct sockaddr *)&from, &fromlen) < 0) {
if (getsockname(0, (struct sockaddr *)&from, &fromlen) < 0)
from_inetd = 0;
sock = RPC_ANYSOCK;
proto = IPPROTO_UDP;
}
if (!from_inetd) {
daemon(0, 0);
/* daemon(0, 0); */
(void)pmap_unset(RSTATPROG, RSTATVERS_TIME);
(void)pmap_unset(RSTATPROG, RSTATVERS_SWTCH);
@ -106,23 +101,53 @@ main(argc, argv)
openlog("rpc.rstatd", LOG_PID, LOG_DAEMON);
transp = svcudp_create(sock);
if (from_inetd) {
transp = svc_dg_create(0, 0, 0);
if (transp == NULL) {
syslog(LOG_ERR, "cannot create udp service.");
exit(1);
}
if (!svc_register(transp, RSTATPROG, RSTATVERS_TIME, rstat_service, proto)) {
syslog(LOG_ERR, "unable to register (RSTATPROG, RSTATVERS_TIME, udp).");
if (!svc_reg(transp, RSTATPROG, RSTATVERS_TIME, rstat_service,
NULL)) {
syslog(LOG_ERR, "unable to register (RSTATPROG,"
"RSTATVERS_TIME)");
exit(1);
}
if (!svc_register(transp, RSTATPROG, RSTATVERS_SWTCH, rstat_service, proto)) {
syslog(LOG_ERR, "unable to register (RSTATPROG, RSTATVERS_SWTCH, udp).");
if (!svc_reg(transp, RSTATPROG, RSTATVERS_SWTCH, rstat_service,
NULL)) {
syslog(LOG_ERR, "unable to register (RSTATPROG,"
"RSTATVERS_TIME)");
exit(1);
}
if (!svc_register(transp, RSTATPROG, RSTATVERS_ORIG, rstat_service, proto)) {
syslog(LOG_ERR, "unable to register (RSTATPROG, RSTATVERS_ORIG, udp).");
if (!svc_reg(transp, RSTATPROG, RSTATVERS_ORIG, rstat_service,
NULL)) {
syslog(LOG_ERR, "unable to register (RSTATPROG,"
"RSTATVERS_ORIG)");
exit(1);
}
} else {
if (!svc_create(rstat_service, RSTATPROG, RSTATVERS_TIME,
"udp")) {
syslog(LOG_ERR,
"unable to create (RSTATPROG, RSTATVERS_TIME).");
exit(1);
}
if (!svc_create(rstat_service, RSTATPROG, RSTATVERS_SWTCH,
"udp")) {
syslog(LOG_ERR,
"unable to create (RSTATPROG, RSTATVERS_SWTCH).");
exit(1);
}
if (!svc_create(rstat_service, RSTATPROG, RSTATVERS_ORIG,
"udp")) {
syslog(LOG_ERR,
"unable to register (RSTATPROG, RSTATVERS_ORIG).");
exit(1);
}
}
svc_run();
syslog(LOG_ERR, "svc_run returned");