]> git.decadent.org.uk Git - nfs-utils.git/blobdiff - utils/statd/statd.c
2000-08-25 H.J. Lu <hjl@lucon.org>
[nfs-utils.git] / utils / statd / statd.c
index 3b76e30184e400518240c99cc4da15158aa78ab1..d07a26002055f16bd2f24f508d7f9ebad6960eb9 100644 (file)
@@ -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.
  */
@@ -76,7 +95,7 @@ main (int argc, char **argv)
     setsid ();
     chdir (DIR_BASE);
 
-    for (filedes = 0; filedes < OPEN_MAX; filedes++) {
+    for (filedes = 0; filedes < sysconf (_SC_OPEN_MAX); filedes++) {
       close (filedes);
     }
   }