#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
+
#include <arpa/inet.h>
+#include "rpcmisc.h"
#include "statd.h"
#include "notlist.h"
void *
sm_simu_crash_1_svc (void *argp, struct svc_req *rqstp)
{
+ struct sockaddr_in *sin = nfs_getrpccaller_in(rqstp->rq_xprt);
static char *result = NULL;
struct in_addr caller;
- caller = svc_getcaller(rqstp->rq_xprt)->sin_addr;
+ xlog(D_CALL, "Received SM_SIMU_CRASH");
+
+ if (sin->sin_family != AF_INET) {
+ xlog_warn("Call to statd from non-AF_INET address");
+ goto failure;
+ }
+
+ caller = sin->sin_addr;
if (caller.s_addr != htonl(INADDR_LOOPBACK)) {
- note(N_WARNING, "Call to statd from non-local host %s",
+ xlog_warn("Call to statd from non-local host %s",
inet_ntoa(caller));
goto failure;
}
- if (ntohs(svc_getcaller(rqstp->rq_xprt)->sin_port) >= 1024) {
- note(N_WARNING, "Call to statd-simu-crash from unprivileged port");
+ if (ntohs(sin->sin_port) >= 1024) {
+ xlog_warn("Call to statd-simu-crash from unprivileged port");
goto failure;
}
- note (N_WARNING, "*** SIMULATING CRASH! ***");
+ xlog_warn("*** SIMULATING CRASH! ***");
my_svc_exit ();
if (rtnl)