struct cert_key_and_chain *ckch;
unsigned int multi:1; /* is it a multi-cert bundle ? */
struct list ckch_inst; /* list of ckch_inst which uses this ckch_node */
+ struct list crtlist_entry; /* list of entries which use this store */
struct ebmb_node node;
char path[0];
};
char **filters;
struct list ckch_inst; /* list of instances of this entry, there is 1 ckch_inst per instance of the crt-list */
struct list by_crtlist; /* ordered entries */
+ struct list by_ckch_store; /* linked in ckch_store list of crtlist_entries */
struct ebpt_node node; /* key is a ptr to a ckch_store */
};
memcpy(dst->path, src->path, pathlen + 1);
dst->multi = src->multi;
LIST_INIT(&dst->ckch_inst);
+ LIST_INIT(&dst->crtlist_entry);
dst->ckch = calloc((src->multi ? SSL_SOCK_NUM_KEYTYPES : 1), sizeof(*dst->ckch));
if (!dst->ckch)
}
LIST_INIT(&ckchs->ckch_inst);
+ LIST_INIT(&ckchs->crtlist_entry);
if (!multi) {
goto end;
}
entry->node.key = ckchs;
+ LIST_ADDQ(&ckchs->crtlist_entry, &entry->by_ckch_store);
LIST_ADDQ(&dir->ord_entries, &entry->by_crtlist);
ebpt_insert(&dir->entries, &entry->node);
goto end;
}
entry->node.key = ckchs;
+ LIST_ADDQ(&ckchs->crtlist_entry, &entry->by_ckch_store);
LIST_ADDQ(&dir->ord_entries, &entry->by_crtlist);
ebpt_insert(&dir->entries, &entry->node);
entry->fcount = arg - cur_arg - 1;
ebpt_insert(&newlist->entries, &entry->node);
LIST_ADDQ(&newlist->ord_entries, &entry->by_crtlist);
+ LIST_ADDQ(&ckchs->crtlist_entry, &entry->by_ckch_store);
}
if (cfgerr & ERR_CODE)
goto error;
}
/* we won't create any instance */
LIST_INIT(&store->ckch_inst);
+ LIST_INIT(&store->crtlist_entry);
/* we won't support multi-certificate bundle here */
store->multi = 0;