/* * See if the entry already exists. If not, * this was an instantiated wild card, and we * must add it. */ static void rmtab_read_wildcard(struct rmtabent *rep) { nfs_export *exp, *exp2; struct addrinfo *ai; ai = host_addrinfo(rep->r_client); if (ai == NULL) return; exp = export_allowed(ai, rep->r_path); freeaddrinfo(ai); if (exp == NULL) return; exp2 = export_lookup(rep->r_client, exp->m_export.e_path, 0); if (exp2 == NULL) { struct exportent ee; memset(&ee, 0, sizeof(ee)); dupexportent(&ee, &exp->m_export); ee.e_hostname = rep->r_client; exp2 = export_create(&ee, 0); exp2->m_changed = exp->m_changed; } exp2->m_mayexport = 1; }
static void 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++; }