new->hooks_version = 0;
for (i = 0; i < NUM_LXC_HOOKS; i++)
INIT_LIST_HEAD(&new->hooks[i]);
- lxc_list_init(&new->groups);
+ INIT_LIST_HEAD(&new->groups);
INIT_LIST_HEAD(&new->state_clients);
new->lsm_aa_profile = NULL;
INIT_LIST_HEAD(&new->lsm_aa_raw);
int lxc_clear_groups(struct lxc_conf *c)
{
- struct lxc_list *it, *next;
+ struct string_entry *entry, *nentry;
- lxc_list_for_each_safe (it, &c->groups, next) {
- lxc_list_del(it);
- free(it->elem);
- free(it);
+ list_for_each_entry_safe(entry, nentry, &c->groups, head) {
+ list_del(&entry->head);
+ free(entry->val);
+ free(entry);
}
- lxc_list_init(&c->groups);
+ INIT_LIST_HEAD(&c->groups);
return 0;
}
if (!groups)
return ret_errno(ENOMEM);
- /* In case several groups are specified in a single line split these
+ /*
+ * In case several groups are specified in a single line split these
* groups in a single element for the list.
*/
lxc_iterate_parts(token, groups, " \t") {
- __do_free struct lxc_list *grouplist = NULL;
+ __do_free char *val = NULL;
+ __do_free struct string_entry *entry = NULL;
- grouplist = lxc_list_new();
- if (!grouplist)
+ entry = zalloc(sizeof(struct string_entry));
+ if (!entry)
return ret_errno(ENOMEM);
- grouplist->elem = strdup(token);
- if (!grouplist->elem)
+ val = strdup(token);
+ if (!val)
return ret_errno(ENOMEM);
- lxc_list_add_tail(&lxc_conf->groups, move_ptr(grouplist));
+ entry->val = move_ptr(val);
+ list_add_tail(&entry->head, &lxc_conf->groups);
+ move_ptr(entry);
}
return 0;
struct lxc_conf *c, void *data)
{
int len, fulllen = 0;
- struct lxc_list *it;
+ struct string_entry *entry;
if (!retv)
inlen = 0;
else
memset(retv, 0, inlen);
- lxc_list_for_each(it, &c->groups) {
- strprint(retv, inlen, "%s\n", (char *)it->elem);
+ list_for_each_entry(entry, &c->groups, head) {
+ strprint(retv, inlen, "%s\n", entry->val);
}
return fulllen;