]> git.decadent.org.uk Git - nfs-utils.git/blobdiff - utils/mountd/mountd.c
In mountd, if get_exportlist() (utils/mountd/mountd.c) returns NULL it
[nfs-utils.git] / utils / mountd / mountd.c
index 04141d153a676b70e9e789f1a5369c93b7ab0625..63d5ce1797edd65e01f5d38819377ab4d5eb2ae8 100644 (file)
@@ -40,6 +40,7 @@ static struct nfs_fh_len *get_rootfh(struct svc_req *, dirpath *, mountstat3 *,
 int reverse_resolve = 0;
 int new_cache = 0;
 int manage_gids;
+int use_ipaddr = -1;
 
 /* PRC: a high-availability callout program can be specified with -H
  * When this is done, the program will receive callouts whenever clients
@@ -202,9 +203,8 @@ mount_dump_1_svc(struct svc_req *rqstp, void *argp, mountlist *res)
        struct sockaddr_in *addr =
                (struct sockaddr_in *) svc_getcaller(rqstp->rq_xprt);
 
-       if ((*res = mountlist_list()) == NULL)
-               xlog(L_WARNING, "dump request from %s failed.",
-                       inet_ntoa(addr->sin_addr));
+       xlog(D_CALL, "dump request from %s.", inet_ntoa(addr->sin_addr));
+       *res = mountlist_list();
 
        return 1;
 }
@@ -253,9 +253,8 @@ mount_export_1_svc(struct svc_req *rqstp, void *argp, exports *resp)
        struct sockaddr_in *addr =
                (struct sockaddr_in *) svc_getcaller(rqstp->rq_xprt);
 
-       if ((*resp = get_exportlist()) == NULL)
-               xlog(L_WARNING, "export request from %s failed.",
-                       inet_ntoa(addr->sin_addr));
+       xlog(D_CALL, "export request from %s.", inet_ntoa(addr->sin_addr));
+       *resp = get_exportlist();
                
        return 1;
 }
@@ -266,9 +265,9 @@ mount_exportall_1_svc(struct svc_req *rqstp, void *argp, exports *resp)
        struct sockaddr_in *addr =
                (struct sockaddr_in *) svc_getcaller(rqstp->rq_xprt);
 
-       if ((*resp = get_exportlist()) == NULL)
-               xlog(L_WARNING, "exportall request from %s failed.",
-                       inet_ntoa(addr->sin_addr));
+       xlog(D_CALL, "exportall request from %s.", inet_ntoa(addr->sin_addr));
+       *resp = get_exportlist();
+
        return 1;
 }
 
@@ -465,18 +464,18 @@ static exports
 get_exportlist(void)
 {
        static exports          elist = NULL;
-       static time_t           etime = 0;
-       time_t                  atime;
        struct exportnode       *e, *ne;
        struct groupnode        *g, *ng, *c, **cp;
        nfs_export              *exp;
        int                     i;
+       static unsigned int     ecounter;
+       unsigned int            acounter;
 
-       atime = auth_reload();
-       if (elist && atime == etime)
+       acounter = auth_reload();
+       if (elist && acounter == ecounter)
                return elist;
 
-       etime = atime;
+       ecounter = acounter;
 
        for (e = elist; e != NULL; e = ne) {
                ne = e->ex_next;