Apache2
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 
20 struct apr_hash_t;
21 struct apr_array_header_t;
22 struct md_pkey_t;
23 struct md_cert_t;
24 struct md_result_t;
25 struct md_pkey_spec_t;
26 
27 #include "md_store.h"
28 
33 typedef struct md_reg_t md_reg_t;
34 
46  const char *proxy_url, const char *ca_file,
47  apr_time_t min_delay, int retry_failover,
48  int use_store_locks, apr_time_t lock_wait_timeout);
49 
51 
52 apr_status_t md_reg_set_props(md_reg_t *reg, apr_pool_t *p, int can_http, int can_https);
53 
59 
64 md_t *md_reg_find(md_reg_t *reg, const char *domain, apr_pool_t *p);
65 
71 md_t *md_reg_find_overlap(md_reg_t *reg, const md_t *md, const char **pdomain, apr_pool_t *p);
72 
77 md_t *md_reg_get(md_reg_t *reg, const char *name, apr_pool_t *p);
78 
82 typedef int md_reg_do_cb(void *baton, md_reg_t *reg, md_t *md);
83 
89 int md_reg_do(md_reg_do_cb *cb, void *baton, md_reg_t *reg, apr_pool_t *p);
90 
94 #define MD_UPD_DOMAINS 0x00001
95 #define MD_UPD_CA_URL 0x00002
96 #define MD_UPD_CA_PROTO 0x00004
97 #define MD_UPD_CA_ACCOUNT 0x00008
98 #define MD_UPD_CONTACTS 0x00010
99 #define MD_UPD_AGREEMENT 0x00020
100 #define MD_UPD_DRIVE_MODE 0x00080
101 #define MD_UPD_RENEW_WINDOW 0x00100
102 #define MD_UPD_CA_CHALLENGES 0x00200
103 #define MD_UPD_PKEY_SPEC 0x00400
104 #define MD_UPD_REQUIRE_HTTPS 0x00800
105 #define MD_UPD_TRANSITIVE 0x01000
106 #define MD_UPD_MUST_STAPLE 0x02000
107 #define MD_UPD_PROTO 0x04000
108 #define MD_UPD_WARN_WINDOW 0x08000
109 #define MD_UPD_STAPLING 0x10000
110 #define MD_UPD_ALL 0x7FFFFFFF
111 
117  const char *name, const md_t *md,
118  int fields, int check_consistency);
119 
125  const md_t *md, int i, apr_pool_t *p);
126 
131 apr_status_t md_reg_get_cred_files(const char **pkeyfile, const char **pcertfile,
133  const md_t *md, struct md_pkey_spec_t *spec, apr_pool_t *p);
134 
139 
144 
145 
146 apr_status_t md_reg_remove(md_reg_t *reg, apr_pool_t *p, const char *name, int archive);
147 
151 apr_status_t md_reg_delete_acct(md_reg_t *reg, apr_pool_t *p, const char *acct_id);
152 
153 
163  apr_array_header_t *mds);
164 
171 
178 
184 
190 
196 int md_reg_should_warn(md_reg_t *reg, const md_t *md, apr_pool_t *p);
197 
198 /**************************************************************************************************/
199 /* protocol drivers */
200 
201 typedef struct md_proto_t md_proto_t;
202 
203 typedef struct md_proto_driver_t md_proto_driver_t;
204 
212  void *baton;
213  struct apr_table_t *env;
214 
217  const char *proxy_url;
218  const char *ca_file;
219  const md_t *md;
220 
221  int can_http;
223  int reset;
224  int attempt;
227 };
228 
233  md_store_group_t group, struct md_result_t *result);
235 
236 struct md_proto_t {
237  const char *protocol;
243 };
244 
251 apr_status_t md_reg_test_init(md_reg_t *reg, const md_t *md, struct apr_table_t *env,
252  struct md_result_t *result, apr_pool_t *p);
253 
266  struct apr_table_t *env, int reset, int attempt,
267  struct md_result_t *result, apr_pool_t *p);
268 
279  struct md_result_t *result, apr_pool_t *p);
280 
287  apr_table_t *env, apr_pool_t *p);
288 
291 
292 struct md_job_t *md_reg_job_make(md_reg_t *reg, const char *mdomain, apr_pool_t *p);
293 
307 
312 
313 #endif /* mod_md_md_reg_h */
const char const dav_liveprop_group * group
Definition: mod_dav.h:1049
const char * name
Definition: mod_dav.h:805
int apr_status_t
Definition: apr_errno.h:44
struct apr_hash_t apr_hash_t
Definition: apr_hash.h:52
struct apr_pool_t apr_pool_t
Definition: apr_pools.h:60
struct apr_table_t apr_table_t
Definition: apr_tables.h:56
apr_int64_t apr_interval_time_t
Definition: apr_time.h:55
apr_int64_t apr_time_t
Definition: apr_time.h:45
struct md_pkey_t md_pkey_t
Definition: md_crypt.h:47
struct md_cert_t md_cert_t
Definition: md_crypt.h:129
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)
apr_time_t md_reg_valid_until(md_reg_t *reg, const md_t *md, apr_pool_t *p)
apr_status_t md_reg_remove(md_reg_t *reg, apr_pool_t *p, const char *name, int archive)
apr_status_t md_reg_cleanup_challenges(md_reg_t *reg, apr_pool_t *p, apr_pool_t *ptemp, apr_array_header_t *mds)
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)
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)
apr_status_t md_reg_sync_start(md_reg_t *reg, apr_array_header_t *master_mds, apr_pool_t *p)
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:232
void md_reg_set_warn_window_default(md_reg_t *reg, md_timeslice_t *warn_window)
apr_status_t md_reg_freeze_domains(md_reg_t *reg, apr_array_header_t *mds)
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)
apr_status_t md_reg_set_props(md_reg_t *reg, apr_pool_t *p, int can_http, int can_https)
void md_reg_unlock_global(md_reg_t *reg, apr_pool_t *p)
md_t * md_reg_get(md_reg_t *reg, const char *name, apr_pool_t *p)
apr_status_t md_reg_lock_global(md_reg_t *reg, apr_pool_t *p)
struct md_job_t * md_reg_job_make(md_reg_t *reg, const char *mdomain, apr_pool_t *p)
apr_status_t md_proto_renew_cb(md_proto_driver_t *driver, struct md_result_t *result)
Definition: md_reg.h:230
md_store_t * md_reg_store_get(md_reg_t *reg)
apr_status_t md_proto_init_cb(md_proto_driver_t *driver, struct md_result_t *result)
Definition: md_reg.h:229
struct md_reg_t md_reg_t
Definition: md_reg.h:33
int md_reg_do(md_reg_do_cb *cb, void *baton, md_reg_t *reg, apr_pool_t *p)
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)
md_t * md_reg_find_overlap(md_reg_t *reg, const md_t *md, const char **pdomain, apr_pool_t *p)
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)
int md_reg_do_cb(void *baton, md_reg_t *reg, md_t *md)
Definition: md_reg.h:82
apr_status_t md_reg_load_stagings(md_reg_t *reg, apr_array_header_t *mds, apr_table_t *env, apr_pool_t *p)
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)
apr_status_t md_proto_init_preload_cb(md_proto_driver_t *driver, struct md_result_t *result)
Definition: md_reg.h:231
void md_reg_set_renew_window_default(md_reg_t *reg, md_timeslice_t *renew_window)
md_t * md_reg_find(md_reg_t *reg, const char *domain, apr_pool_t *p)
apr_status_t md_proto_complete_md_cb(md_t *md, apr_pool_t *p)
Definition: md_reg.h:234
int md_reg_should_warn(md_reg_t *reg, const md_t *md, apr_pool_t *p)
apr_status_t md_reg_delete_acct(md_reg_t *reg, apr_pool_t *p, const char *acct_id)
apr_status_t md_reg_add(md_reg_t *reg, md_t *md, apr_pool_t *p)
apr_status_t md_reg_sync_finish(md_reg_t *reg, md_t *md, apr_pool_t *p, apr_pool_t *ptemp)
apr_time_t md_reg_renew_at(md_reg_t *reg, const md_t *md, apr_pool_t *p)
md_store_group_t
Definition: md_store.h:62
Definition: apr_tables.h:62
Definition: md_status.h:52
const char * mdomain
Definition: md_status.h:54
Definition: md_crypt.h:63
Definition: md_reg.h:209
int can_https
Definition: md_reg.h:222
const md_proto_t * proto
Definition: md_reg.h:210
int retry_failover
Definition: md_reg.h:225
const char * ca_file
Definition: md_reg.h:218
md_store_t * store
Definition: md_reg.h:216
int reset
Definition: md_reg.h:223
int attempt
Definition: md_reg.h:224
const char * proxy_url
Definition: md_reg.h:217
md_reg_t * reg
Definition: md_reg.h:215
int can_http
Definition: md_reg.h:221
struct apr_table_t * env
Definition: md_reg.h:213
const md_t * md
Definition: md_reg.h:219
void * baton
Definition: md_reg.h:212
apr_pool_t * p
Definition: md_reg.h:211
apr_interval_time_t activation_delay
Definition: md_reg.h:226
Definition: md_reg.h:236
md_proto_init_preload_cb * init_preload
Definition: md_reg.h:240
md_proto_renew_cb * renew
Definition: md_reg.h:239
md_proto_preload_cb * preload
Definition: md_reg.h:241
const char * protocol
Definition: md_reg.h:237
md_proto_init_cb * init
Definition: md_reg.h:238
md_proto_complete_md_cb * complete_md
Definition: md_reg.h:242
Definition: md.h:321
Definition: md_result.h:29
Definition: md_store.h:325
Definition: md.h:76
Definition: md_time.h:60
apr_pool_t * p