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;
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';
-}