#include <haproxy/ssl_ckch-t.h>
-int ckch_conf_acme_init(void *value, char *buf, struct ckch_data *d, int cli, const char *filename, int linenum, char **err);
+int ckch_conf_acme_init(void *value, char *buf, struct ckch_store *s, int cli, const char *filename, int linenum, char **err);
#endif
const char *name;
ssize_t offset;
enum parse_type_t type;
- int (*func)(void *value, char *buf, struct ckch_data *d, int cli, const char *filename, int linenum, char **err);
+ int (*func)(void *value, char *buf, struct ckch_store *s, int cli, const char *filename, int linenum, char **err);
};
extern struct ckch_conf_kws ckch_conf_kws[];
*
*/
#define DECLARE_CKCH_CONF_LOAD(name, base, callback) \
-static inline int ckch_conf_load_##name(void *value, char *buf, struct ckch_data *d, int cli, const char *filename, int linenum, char **err) \
+static inline int ckch_conf_load_##name(void *value, char *buf, struct ckch_store *s, int cli, const char *filename, int linenum, char **err) \
{ \
char path[PATH_MAX]; \
int err_code = 0; \
+ struct ckch_data *d = s->data; \
if (cli) \
return 0; \
err_code |= path_base(value, (base), path, err); \
int ssl_ocsp_update_insert(struct certificate_ocsp *ocsp);
int __ssl_ocsp_update_insert_unlocked(struct certificate_ocsp *ocsp);
-int ocsp_update_init(void *value, char *buf, struct ckch_data *d, int cli, const char *filename, int linenum, char **err);
+int ocsp_update_init(void *value, char *buf, struct ckch_store *s, int cli, const char *filename, int linenum, char **err);
#endif /* (defined SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB && !defined OPENSSL_NO_OCSP) */
/*
* ckch_conf acme parser
*/
-int ckch_conf_acme_init(void *value, char *buf, struct ckch_data *d, int cli, const char *filename, int linenum, char **err)
+int ckch_conf_acme_init(void *value, char *buf, struct ckch_store *s, int cli, const char *filename, int linenum, char **err)
{
int err_code = 0;
struct acme_cfg *cfg;
if (!v)
goto next;
- rc = ckch_conf_kws[i].func(v, NULL, d, cli, file, linenum, err);
+ rc = ckch_conf_kws[i].func(v, NULL, c, cli, file, linenum, err);
if (rc) {
err_code |= ERR_ALERT | ERR_FATAL;
memprintf(err, "%s '%s' cannot be read or parsed.", err && *err ? *err : "", v);
case PARSE_TYPE_ONOFF:
{
int v = *(int *)src;
- rc = ckch_conf_kws[i].func(&v, NULL, d, cli, file, linenum, err);
+ rc = ckch_conf_kws[i].func(&v, NULL, c, cli, file, linenum, err);
if (rc) {
err_code |= ERR_ALERT | ERR_FATAL;
memprintf(err, "%s '%d' cannot be read or parsed.", err && *err ? *err : "", v);
if (!c)
goto alloc_error;
+ c->conf = f;
+ c->conf.used = CKCH_CONF_SET_CRTSTORE;
+
err_code |= ckch_store_load_files(&f, c, 0, file, linenum, err);
if (err_code & ERR_FATAL)
goto out;
- c->conf = f;
- c->conf.used = CKCH_CONF_SET_CRTSTORE;
-
if (ebst_insert(&ckchs_tree, &c->node) != &c->node) {
memprintf(err,"parsing [%s:%d] : '%s' in section 'crt-store': store '%s' was already defined.",
file, linenum, args[0], c->path);
return 0;
}
-int ocsp_update_init(void *value, char *buf, struct ckch_data *d, int cli, const char *filename, int linenum, char **err)
+int ocsp_update_init(void *value, char *buf, struct ckch_store *s, int cli, const char *filename, int linenum, char **err)
{
int ocsp_update_mode = *(int *)value;
int ret = 0;