* 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>
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++;
}
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;
new->m_exported = 0;
new->m_xtabent = 0;
new->m_changed = 0;
+ new->m_warned = 0;
export_add(new);
return new;
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;
return NULL;
}
-struct exportent *
+nfs_export *
export_allowed(struct hostent *hp, char *path)
{
- static struct exportent ee;
nfs_export *exp;
char epath[MAXPATHLEN+1];
char *p = NULL;
/* Try the longest matching exported pathname. */
while (1) {
exp = export_allowed_internal (hp, epath);
- if (exp) {
- dupexportent(&ee, &exp->m_export);
- return ⅇ
- }
+ if (exp)
+ return exp;
/* We have to treat the root, "/", specially. */
if (p == &epath[1]) break;
p = strrchr(epath, '/');
xfree(exp->m_export.e_squids);
if (exp->m_export.e_sqgids)
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';
-}