]> git.decadent.org.uk Git - nfs-utils.git/blobdiff - support/export/export.c
Remove redundant m_path field
[nfs-utils.git] / support / export / export.c
index eedbb751b5a505f860572fb77e914e3e29bb1316..14af11219fcfc8fa358d6376fcf003ada044be85 100644 (file)
@@ -6,7 +6,9 @@
  * Copyright (C) 1995, 1996 Olaf Kirch <okir@monad.swb.de>
  */
 
-#include "config.h"
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
 
 #include <string.h>
 #include <sys/types.h>
@@ -83,11 +85,14 @@ export_init(nfs_export *exp, nfs_client *clp, struct exportent *nep)
        struct exportent        *e = &exp->m_export;
 
        dupexportent(e, nep);
+       if (nep->e_hostname)
+               e->e_hostname = xstrdup(nep->e_hostname);
 
        exp->m_exported = 0;
        exp->m_xtabent = 0;
        exp->m_mayexport = 0;
        exp->m_changed = 0;
+       exp->m_warned = 0;
        exp->m_client = clp;
        clp->m_count++;
 }
@@ -106,6 +111,8 @@ export_dup(nfs_export *exp, struct hostent *hp)
        new = (nfs_export *) xmalloc(sizeof(*new));
        memcpy(new, exp, sizeof(*new));
        dupexportent(&new->m_export, &exp->m_export);
+       if (exp->m_export.e_hostname)
+               new->m_export.e_hostname = xstrdup(exp->m_export.e_hostname);
        clp = client_dup(exp->m_client, hp);
        clp->m_count++;
        new->m_client = clp;
@@ -113,6 +120,7 @@ export_dup(nfs_export *exp, struct hostent *hp)
        new->m_exported = 0;
        new->m_xtabent = 0;
        new->m_changed = 0;
+       new->m_warned = 0;
        export_add(new);
 
        return new;
@@ -129,7 +137,7 @@ export_add(nfs_export *exp)
                xlog(L_FATAL, "unknown client type in export_add");
 
        epp = exportlist + type;
-       while (*epp && slen < strlen((*epp)->m_export.e_path))
+       while (*epp && slen <= strlen((*epp)->m_export.e_path))
                epp = &((*epp)->m_next);
        exp->m_next = *epp;
        *epp = exp;
@@ -238,21 +246,12 @@ export_freeall(void)
                                xfree(exp->m_export.e_sqgids);
                        if (exp->m_export.e_mountpoint)
                                free(exp->m_export.e_mountpoint);
+                       if (exp->m_export.e_fslocdata)
+                               xfree(exp->m_export.e_fslocdata);
+                       xfree(exp->m_export.e_hostname);
                        xfree(exp);
                }
                exportlist[i] = NULL;
        }
        client_freeall();
 }
-
-void
-export_reset(nfs_export *exp)
-{
-       if (!exp)
-               return;
-
-       /* Restore m_path. */
-       strncpy(exp->m_export.m_path, exp->m_export.e_path,
-               sizeof (exp->m_export.m_path) - 1);
-       exp->m_export.m_path[sizeof (exp->m_export.m_path) - 1] = '\0';
-}