39#define MD_STATUS_WITH_SCTS 0
59#if MD_STATUS_WITH_SCTS
69 for (
i = 0;
i <
scts->nelts; ++
i) {
383 const char *
status,
const char *detail)
499 const char *msg, *
sep;
APR general purpose library routines.
ap_vhost_iterate_conn_cb void * baton
#define APR_STATUS_IS_ENOENT(s)
apr_brigade_flush void * ctx
apr_array_header_t ** result
apr_vformatter_buff_t * c
#define apr_pcalloc(p, size)
#define APR_ARRAY_PUSH(ary, type)
#define APR_ARRAY_IDX(ary, i, type)
#define apr_time_as_msec(time)
#define APR_RFC822_DATE_LEN
#define apr_time_sec(time)
#define apr_time_from_sec(sec)
#define MD_KEY_VALID_FROM
#define MD_KEY_SHA256_FINGERPRINT
struct md_json_t * md_to_public_json(const md_t *md, apr_pool_t *p)
#define MD_KEY_NOTIFIED_RENEWED
int md_acme_problem_is_input_related(const char *problem)
apr_status_t md_rand_bytes(unsigned char *buf, apr_size_t len, apr_pool_t *p)
apr_status_t md_cert_to_sha256_fingerprint(const char **pfinger, const md_cert_t *cert, apr_pool_t *p)
const char * md_cert_get_serial_number(const md_cert_t *cert, apr_pool_t *p)
md_pkey_spec_t * md_pkeys_spec_get(const md_pkeys_spec_t *pks, int index)
const char * md_pkey_spec_name(const md_pkey_spec_t *spec)
apr_time_t md_cert_get_not_before(const md_cert_t *cert)
md_timeperiod_t md_cert_get_valid(const md_cert_t *cert)
const char * md_nid_get_sname(int nid)
int md_pkeys_spec_count(const md_pkeys_spec_t *pks)
apr_status_t md_cert_get_ct_scts(apr_array_header_t *scts, apr_pool_t *p, const md_cert_t *cert)
apr_time_t md_cert_get_not_after(const md_cert_t *cert)
apr_status_t md_event_raise(const char *event, const char *mdomain, struct md_job_t *job, struct md_result_t *result, apr_pool_t *p)
void md_event_holler(const char *event, const char *mdomain, struct md_job_t *job, struct md_result_t *result, apr_pool_t *p)
md_json_t * md_json_create(apr_pool_t *pool)
apr_status_t md_json_set_timeperiod(const md_timeperiod_t *tp, md_json_t *json,...)
int md_json_getb(const md_json_t *json,...)
apr_status_t md_json_sets(const char *value, md_json_t *json,...)
const char * md_json_gets(const md_json_t *json,...)
long md_json_getl(const md_json_t *json,...)
md_json_t * md_json_getj(md_json_t *json,...)
const md_json_t * md_json_getcj(const md_json_t *json,...)
apr_status_t md_json_addj(const md_json_t *value, md_json_t *json,...)
apr_size_t md_json_limita(size_t max_elements, md_json_t *json,...)
apr_status_t md_json_set_time(apr_time_t value, md_json_t *json,...)
apr_status_t md_json_insertj(md_json_t *value, size_t index, md_json_t *json,...)
apr_status_t md_json_del(md_json_t *json,...)
apr_status_t md_json_setj(const md_json_t *value, md_json_t *json,...)
int md_json_has_key(const md_json_t *json,...)
int md_json_itera(md_json_itera_cb *cb, void *baton, md_json_t *json,...)
apr_status_t md_json_setb(int value, md_json_t *json,...)
const char * md_json_dups(apr_pool_t *p, const md_json_t *json,...)
apr_status_t md_json_setl(long value, md_json_t *json,...)
const char * md_ocsp_cert_stat_name(md_ocsp_cert_stat_t stat)
apr_status_t md_ocsp_get_meta(md_ocsp_cert_stat_t *pstat, md_timeperiod_t *pvalid, md_ocsp_reg_t *reg, const md_cert_t *cert, apr_pool_t *p, const md_t *md)
apr_status_t md_reg_get_pubcert(const md_pubcert_t **ppubcert, md_reg_t *reg, const md_t *md, int i, apr_pool_t *p)
int md_reg_should_renew(md_reg_t *reg, const md_t *md, apr_pool_t *p)
md_job_t * md_reg_job_make(md_reg_t *reg, const char *mdomain, apr_pool_t *p)
struct md_store_t * md_reg_store_get(md_reg_t *reg)
apr_time_t md_reg_renew_at(md_reg_t *reg, const md_t *md, apr_pool_t *p)
md_result_t * md_result_from_json(const struct md_json_t *json, apr_pool_t *p)
struct md_json_t * md_result_to_json(const md_result_t *result, apr_pool_t *p)
void md_result_on_holler(md_result_t *result, md_result_holler_cb *cb, void *data)
void md_result_on_change(md_result_t *result, md_result_change_cb *cb, void *data)
void md_result_assign(md_result_t *dest, const md_result_t *src)
int md_result_cmp(const md_result_t *r1, const md_result_t *r2)
void md_result_set(md_result_t *result, apr_status_t status, const char *detail)
md_result_t * md_result_md_make(apr_pool_t *p, const char *md_name)
void md_result_on_raise(md_result_t *result, md_result_raise_cb *cb, void *data)
static apr_status_t job_loadj(md_json_t **pjson, md_store_group_t group, const char *name, struct md_reg_t *reg, int with_log, apr_pool_t *p)
static apr_status_t status_get_md_json(md_json_t **pjson, const md_t *md, md_reg_t *reg, md_ocsp_reg_t *ocsp, int with_logs, apr_pool_t *p)
static void job_observation_start(md_job_t *job, md_result_t *result, md_store_t *store)
md_job_t * md_job_make(apr_pool_t *p, md_store_t *store, md_store_group_t group, const char *name, apr_time_t min_delay)
void md_job_start_run(md_job_t *job, md_result_t *result, md_store_t *store)
void md_job_set_group(md_job_t *job, md_store_group_t group)
static const char * get_cert_name(const md_t *md, int i, int from_staging, apr_pool_t *p)
static int find_first_log_entry(void *baton, size_t index, md_json_t *entry)
static void job_result_holler(md_result_t *result, void *data, const char *event, apr_pool_t *p)
apr_status_t md_job_load(md_job_t *job)
static void job_observation_end(md_job_t *job)
void md_job_end_run(md_job_t *job, md_result_t *result)
static apr_status_t status_get_cert_json(md_json_t **pjson, const md_cert_t *cert, apr_pool_t *p)
static int get_cert_count(const md_t *md, int from_staging)
static void job_to_json(md_json_t *json, const md_job_t *job, md_result_t *result, apr_pool_t *p)
static apr_status_t job_result_raise(md_result_t *result, void *data, const char *event, apr_pool_t *p)
md_json_t * md_job_log_get_latest(md_job_t *job, const char *type)
apr_status_t md_job_save(md_job_t *job, md_result_t *result, apr_pool_t *p)
static apr_status_t status_get_cert_json_ex(md_json_t **pjson, const md_cert_t *cert, const md_t *md, md_reg_t *reg, md_ocsp_reg_t *ocsp, int with_logs, apr_pool_t *p)
apr_status_t md_status_get_json(md_json_t **pjson, apr_array_header_t *mds, md_reg_t *reg, md_ocsp_reg_t *ocsp, apr_pool_t *p)
static void md_job_from_json(md_job_t *job, md_json_t *json, apr_pool_t *p)
apr_time_t md_job_delay_on_errors(md_job_t *job, int err_count, const char *last_problem)
static void job_result_update(md_result_t *result, void *data)
void md_job_retry_at(md_job_t *job, apr_time_t later)
apr_time_t md_job_log_get_time_of_latest(md_job_t *job, const char *type)
static apr_status_t status_get_certs_json(md_json_t **pjson, apr_array_header_t *certs, int from_staging, const md_t *md, md_reg_t *reg, md_ocsp_reg_t *ocsp, int with_logs, apr_pool_t *p)
apr_status_t md_status_get_md_json(md_json_t **pjson, const md_t *md, md_reg_t *reg, md_ocsp_reg_t *ocsp, apr_pool_t *p)
void md_job_log_append(md_job_t *job, const char *type, const char *status, const char *detail)
void md_status_take_stock(md_json_t **pjson, apr_array_header_t *mds, md_reg_t *reg, apr_pool_t *p)
apr_status_t md_job_notify(md_job_t *job, const char *reason, md_result_t *result)
static apr_status_t get_staging_certs_json(md_json_t **pjson, const md_t *md, md_reg_t *reg, apr_pool_t *p)
apr_status_t md_store_save_json(md_store_t *store, apr_pool_t *p, md_store_group_t group, const char *name, const char *aspect, struct md_json_t *data, int create)
apr_status_t md_pubcert_load(md_store_t *store, md_store_group_t group, const char *name, md_pkey_spec_t *spec, struct apr_array_header_t **ppubcert, apr_pool_t *p)
apr_status_t md_store_load_json(md_store_t *store, md_store_group_t group, const char *name, const char *aspect, struct md_json_t **pdata, apr_pool_t *p)
md_timeperiod_t md_timeperiod_common(const md_timeperiod_t *a, const md_timeperiod_t *b)
apr_status_t md_data_to_hex(const char **phex, char separator, apr_pool_t *p, const md_data_t *data)
struct md_result_t * observing
struct md_result_t * last_result
struct md_pkeys_spec_t * pks
struct apr_array_header_t * cert_files
apr_status_t apr_rfc822_date(char *date_str, apr_time_t t)
typedef int(WSAAPI *apr_winapi_fpt_WSAPoll)(IN OUT LPWSAPOLLFD fdArray