Esempio n. 1
0
/*
 * 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;
}
Esempio n. 2
0
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++;
}