Apache HTTPD
md_reg.h
Go to the documentation of this file.
1/* Licensed to the Apache Software Foundation (ASF) under one or more
2 * contributor license agreements. See the NOTICE file distributed with
3 * this work for additional information regarding copyright ownership.
4 * The ASF licenses this file to You under the Apache License, Version 2.0
5 * (the "License"); you may not use this file except in compliance with
6 * the License. You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17#ifndef mod_md_md_reg_h
18#define mod_md_md_reg_h
19
20struct apr_hash_t;
22struct md_pkey_t;
23struct md_cert_t;
24struct md_result_t;
25struct md_pkey_spec_t;
26struct md_ocsp_reg_t;
27
28#include "md_store.h"
29
34typedef struct md_reg_t md_reg_t;
35
47 const char *proxy_url, const char *ca_file,
50
52
54
60
65md_t *md_reg_find(md_reg_t *reg, const char *domain, apr_pool_t *p);
66
72md_t *md_reg_find_overlap(md_reg_t *reg, const md_t *md, const char **pdomain, apr_pool_t *p);
73
78md_t *md_reg_get(md_reg_t *reg, const char *name, apr_pool_t *p);
79
83typedef int md_reg_do_cb(void *baton, md_reg_t *reg, md_t *md);
84
90int md_reg_do(md_reg_do_cb *cb, void *baton, md_reg_t *reg, apr_pool_t *p);
91
95#define MD_UPD_DOMAINS 0x00001
96#define MD_UPD_CA_URL 0x00002
97#define MD_UPD_CA_PROTO 0x00004
98#define MD_UPD_CA_ACCOUNT 0x00008
99#define MD_UPD_CONTACTS 0x00010
100#define MD_UPD_AGREEMENT 0x00020
101#define MD_UPD_DRIVE_MODE 0x00080
102#define MD_UPD_RENEW_WINDOW 0x00100
103#define MD_UPD_CA_CHALLENGES 0x00200
104#define MD_UPD_PKEY_SPEC 0x00400
105#define MD_UPD_REQUIRE_HTTPS 0x00800
106#define MD_UPD_TRANSITIVE 0x01000
107#define MD_UPD_MUST_STAPLE 0x02000
108#define MD_UPD_PROTO 0x04000
109#define MD_UPD_WARN_WINDOW 0x08000
110#define MD_UPD_STAPLING 0x10000
111#define MD_UPD_ALL 0x7FFFFFFF
112
118 const char *name, const md_t *md,
119 int fields, int check_consistency);
120
126 const md_t *md, int i, apr_pool_t *p);
127
132apr_status_t md_reg_get_cred_files(const char **pkeyfile, const char **pcertfile,
133 md_reg_t *reg, md_store_group_t group,
134 const md_t *md, struct md_pkey_spec_t *spec, apr_pool_t *p);
135
140
145
146
147apr_status_t md_reg_remove(md_reg_t *reg, apr_pool_t *p, const char *name, int archive);
148
152apr_status_t md_reg_delete_acct(md_reg_t *reg, apr_pool_t *p, const char *acct_id);
153
154
164 apr_array_header_t *mds);
165
172
178int md_reg_should_renew(md_reg_t *reg, const md_t *md, apr_pool_t *p);
179
185
191
197int md_reg_should_warn(md_reg_t *reg, const md_t *md, apr_pool_t *p);
198
199/**************************************************************************************************/
200/* protocol drivers */
201
202typedef struct md_proto_t md_proto_t;
203
205
229
234 md_store_group_t group, struct md_result_t *result);
236
245
252apr_status_t md_reg_test_init(md_reg_t *reg, const md_t *md, struct apr_table_t *env,
253 struct md_result_t *result, apr_pool_t *p);
254
266apr_status_t md_reg_renew(md_reg_t *reg, const md_t *md,
267 struct apr_table_t *env, int reset, int attempt,
268 struct md_result_t *result, apr_pool_t *p);
269
280 struct md_result_t *result, apr_pool_t *p);
281
289
292
293struct md_job_t *md_reg_job_make(md_reg_t *reg, const char *mdomain, apr_pool_t *p);
294
308
313
317int md_reg_has_revoked_certs(md_reg_t *reg, struct md_ocsp_reg_t *ocsp,
318 const md_t *md, apr_pool_t *p);
319
320#endif /* mod_md_md_reg_h */
const ap_regex_t * preg
Definition ap_regex.h:197
ap_vhost_iterate_conn_cb void * baton
Definition http_vhost.h:87
const char const apr_dbd_driver_t ** driver
Definition apr_dbd.h:106
apr_size_t size
int apr_status_t
Definition apr_errno.h:44
apr_array_header_t ** result
char const *const char const *const ** env
apr_int64_t apr_interval_time_t
Definition apr_time.h:55
apr_int64_t apr_time_t
Definition apr_time.h:45
apr_pool_t * p
Definition md_event.c:32
apr_status_t md_reg_update(md_reg_t *reg, apr_pool_t *p, const char *name, const md_t *md, int fields, int check_consistency)
Definition md_reg.c:538
apr_time_t md_reg_valid_until(md_reg_t *reg, const md_t *md, apr_pool_t *p)
Definition md_reg.c:650
apr_status_t md_reg_remove(md_reg_t *reg, apr_pool_t *p, const char *name, int archive)
Definition md_reg.c:992
apr_status_t md_reg_cleanup_challenges(md_reg_t *reg, apr_pool_t *p, apr_pool_t *ptemp, apr_array_header_t *mds)
Definition md_reg.c:1032
apr_status_t md_reg_get_cred_files(const char **pkeyfile, const char **pcertfile, md_reg_t *reg, md_store_group_t group, const md_t *md, struct md_pkey_spec_t *spec, apr_pool_t *p)
Definition md_reg.c:635
apr_status_t md_reg_create(md_reg_t **preg, apr_pool_t *pm, md_store_t *store, const char *proxy_url, const char *ca_file, apr_time_t min_delay, int retry_failover, int use_store_locks, apr_time_t lock_wait_timeout)
Definition md_reg.c:87
apr_status_t md_reg_sync_start(md_reg_t *reg, apr_array_header_t *master_mds, apr_pool_t *p)
Definition md_reg.c:834
apr_status_t md_proto_preload_cb(md_proto_driver_t *driver, md_store_group_t group, struct md_result_t *result)
Definition md_reg.h:233
md_t * md_reg_find_overlap(md_reg_t *reg, const md_t *md, const char **pdomain, apr_pool_t *p)
Definition md_reg.c:388
void md_reg_set_warn_window_default(md_reg_t *reg, md_timeslice_t *warn_window)
Definition md_reg.c:1316
apr_status_t md_reg_freeze_domains(md_reg_t *reg, apr_array_header_t *mds)
Definition md_reg.c:1290
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)
Definition md_reg.c:608
int md_reg_should_renew(md_reg_t *reg, const md_t *md, apr_pool_t *p)
Definition md_reg.c:706
apr_status_t md_reg_set_props(md_reg_t *reg, apr_pool_t *p, int can_http, int can_https)
Definition md_reg.c:750
void md_reg_unlock_global(md_reg_t *reg, apr_pool_t *p)
Definition md_reg.c:1283
apr_status_t md_reg_lock_global(md_reg_t *reg, apr_pool_t *p)
Definition md_reg.c:1269
apr_status_t md_proto_renew_cb(md_proto_driver_t *driver, struct md_result_t *result)
Definition md_reg.h:231
apr_status_t md_proto_init_cb(md_proto_driver_t *driver, struct md_result_t *result)
Definition md_reg.h:230
int md_reg_do(md_reg_do_cb *cb, void *baton, md_reg_t *reg, apr_pool_t *p)
Definition md_reg.c:318
apr_status_t md_reg_test_init(md_reg_t *reg, const md_t *md, struct apr_table_t *env, struct md_result_t *result, apr_pool_t *p)
Definition md_reg.c:1133
struct md_job_t * md_reg_job_make(md_reg_t *reg, const char *mdomain, apr_pool_t *p)
Definition md_reg.c:1321
apr_status_t md_reg_load_staging(md_reg_t *reg, const md_t *md, struct apr_table_t *env, struct md_result_t *result, apr_pool_t *p)
Definition md_reg.c:1237
int md_reg_do_cb(void *baton, md_reg_t *reg, md_t *md)
Definition md_reg.h:83
int md_reg_has_revoked_certs(md_reg_t *reg, struct md_ocsp_reg_t *ocsp, const md_t *md, apr_pool_t *p)
Definition md_reg.c:1334
md_t * md_reg_find(md_reg_t *reg, const char *domain, apr_pool_t *p)
Definition md_reg.c:354
apr_status_t md_reg_load_stagings(md_reg_t *reg, apr_array_header_t *mds, apr_table_t *env, apr_pool_t *p)
Definition md_reg.c:1244
md_t * md_reg_get(md_reg_t *reg, const char *name, apr_pool_t *p)
Definition md_reg.c:326
apr_status_t md_reg_renew(md_reg_t *reg, const md_t *md, struct apr_table_t *env, int reset, int attempt, struct md_result_t *result, apr_pool_t *p)
Definition md_reg.c:1168
md_store_t * md_reg_store_get(md_reg_t *reg)
Definition md_reg.c:122
apr_status_t md_proto_init_preload_cb(md_proto_driver_t *driver, struct md_result_t *result)
Definition md_reg.h:232
void md_reg_set_renew_window_default(md_reg_t *reg, md_timeslice_t *renew_window)
Definition md_reg.c:1311
apr_status_t md_proto_complete_md_cb(md_t *md, apr_pool_t *p)
Definition md_reg.h:235
int md_reg_should_warn(md_reg_t *reg, const md_t *md, apr_pool_t *p)
Definition md_reg.c:714
apr_status_t md_reg_delete_acct(md_reg_t *reg, apr_pool_t *p, const char *acct_id)
Definition md_reg.c:545
apr_status_t md_reg_add(md_reg_t *reg, md_t *md, apr_pool_t *p)
Definition md_reg.c:433
apr_status_t md_reg_sync_finish(md_reg_t *reg, md_t *md, apr_pool_t *p, apr_pool_t *ptemp)
Definition md_reg.c:918
apr_time_t md_reg_renew_at(md_reg_t *reg, const md_t *md, apr_pool_t *p)
Definition md_reg.c:671
md_store_group_t
Definition md_store.h:62
static apr_status_t reset(proxy_balancer *balancer, server_rec *s)
int i
Definition mod_so.c:347
char * name
const char * mdomain
Definition md_status.h:54
const md_proto_t * proto
Definition md_reg.h:211
const char * ca_file
Definition md_reg.h:219
md_store_t * store
Definition md_reg.h:217
const char * proxy_url
Definition md_reg.h:218
md_reg_t * reg
Definition md_reg.h:216
struct apr_table_t * env
Definition md_reg.h:214
const md_t * md
Definition md_reg.h:220
apr_pool_t * p
Definition md_reg.h:212
apr_interval_time_t activation_delay
Definition md_reg.h:227
md_proto_init_preload_cb * init_preload
Definition md_reg.h:241
md_proto_renew_cb * renew
Definition md_reg.h:240
md_proto_preload_cb * preload
Definition md_reg.h:242
const char * protocol
Definition md_reg.h:238
md_proto_init_cb * init
Definition md_reg.h:239
md_proto_complete_md_cb * complete_md
Definition md_reg.h:243
apr_time_t lock_wait_timeout
Definition md_reg.c:60
int retry_failover
Definition md_reg.c:58
struct md_store_t * store
Definition md_reg.c:45
int use_store_locks
Definition md_reg.c:59
int can_http
Definition md_reg.c:48
apr_time_t min_delay
Definition md_reg.c:57
const char * ca_file
Definition md_reg.c:51
const char * proxy_url
Definition md_reg.c:50
int can_https
Definition md_reg.c:49
Definition md.h:76