]> git.decadent.org.uk Git - nfs-utils.git/blobdiff - utils/mountd/mount_dispatch.c
nfs-utils: Provide type-checked version of svc_getcaller()
[nfs-utils.git] / utils / mountd / mount_dispatch.c
index cee19810476d1270918934c4e2c826887a89aab6..199fcece4f4682fb51e27dff87e42847b2096a47 100644 (file)
@@ -4,7 +4,13 @@
  * Copyright (C) 1995 Olaf Kirch <okir@monad.swb.de>
  */
 
-#include "config.h"
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#ifdef HAVE_TCP_WRAPPER
+#include "tcpwrapper.h"
+#endif
 
 #include "mountd.h"
 #include "rpcmisc.h"
@@ -64,6 +70,16 @@ mount_dispatch(struct svc_req *rqstp, SVCXPRT *transp)
 {
        union mountd_arguments  argument;
        union mountd_results    result;
+#ifdef HAVE_TCP_WRAPPER
+       struct sockaddr_in *sin = nfs_getrpccaller_in(transp);
+
+       /* remote host authorization check */
+       if (sin->sin_family == AF_INET &&
+           !check_default("mountd", sin, rqstp->rq_proc, MOUNTPROG)) {
+               svcerr_auth (transp, AUTH_FAILED);
+               return;
+       }
+#endif
 
        rpc_dispatch(rqstp, transp, dtable, number_of(dtable),
                        &argument, &result);