struct uci_element *e;
char buf[16];
- if (!s || s->e.name)
+ if (!s || !s->anonymous)
return;
/*
break;
}
}
- sprintf(buf, "cfg%02x%04x", ++s->package->n_section, hash % (1 << 16));
+ sprintf(buf, "cfg%02x%04x", s->package->name_index, hash % (1 << 16));
s->e.name = uci_strdup(ctx, buf);
}
struct uci_element *e;
uci_foreach_element(list, e) {
- if (!strcmp(e->name, name))
+ if (e->name && !strcmp(e->name, name))
return e;
}
return NULL;
complete:
ptr->flags |= UCI_LOOKUP_COMPLETE;
abort:
- return 0;
+ return UCI_OK;
notfound:
UCI_THROW(ctx, UCI_ERR_NOTFOUND);
- return 0;
+ /* not a chance here */
+ return UCI_ERR_NOTFOUND;
}
__private struct uci_element *