diff options
Diffstat (limited to 'utils/statd/statd.c')
-rw-r--r-- | utils/statd/statd.c | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/utils/statd/statd.c b/utils/statd/statd.c index 91cb3bc..d07a260 100644 --- a/utils/statd/statd.c +++ b/utils/statd/statd.c @@ -21,13 +21,32 @@ int _rpcpmstart = 0; /* flags for tirpc rpcgen */ int _rpcfdtype = 0; int _rpcsvcdirty = 0; -extern void sm_prog_1 (struct svc_req *, register SVCXPRT); +extern void sm_prog_1 (struct svc_req *, register SVCXPRT *); #ifdef SIMULATIONS extern void simulator (int, char **); #endif +#ifdef HAVE_TCP_WRAPPER +#include "tcpwrapper.h" + +static void +sm_prog_1_wrapper (struct svc_req *rqstp, register SVCXPRT *transp) +{ + /* remote host authorization check */ + if (!check_default("statd", svc_getcaller(transp), + rqstp->rq_proc, (u_long) 0)) { + svcerr_auth (transp, AUTH_FAILED); + return; + } + + sm_prog_1 (rqstp, transp); +} + +#define sm_prog_1 sm_prog_1_wrapper +#endif + /* * Signal handler. */ |