summaryrefslogtreecommitdiff
path: root/modules/md/mod_md_config.h
diff options
context:
space:
mode:
authorStefan Eissing <icing@apache.org>2017-08-08 13:50:20 +0000
committerStefan Eissing <icing@apache.org>2017-08-08 13:50:20 +0000
commit4ee5a66bd6a1993eb1d02a89aada556734c52bda (patch)
tree956c2859de442cc037d34081c111a2e38aea48fb /modules/md/mod_md_config.h
parent266f140fa876890e51b7e0aba37cd66b4173e178 (diff)
downloadhttpd-4ee5a66bd6a1993eb1d02a89aada556734c52bda.tar.gz
mod_md: v0.6.0 from github
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/trunk-md@1804424 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'modules/md/mod_md_config.h')
-rw-r--r--modules/md/mod_md_config.h77
1 files changed, 77 insertions, 0 deletions
diff --git a/modules/md/mod_md_config.h b/modules/md/mod_md_config.h
new file mode 100644
index 0000000000..3568f7c6ac
--- /dev/null
+++ b/modules/md/mod_md_config.h
@@ -0,0 +1,77 @@
+/* Copyright 2017 greenbytes GmbH (https://www.greenbytes.de)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef mod_md_md_config_h
+#define mod_md_md_config_h
+
+struct md_store_t;
+
+typedef enum {
+ MD_CONFIG_CA_URL,
+ MD_CONFIG_CA_PROTO,
+ MD_CONFIG_BASE_DIR,
+ MD_CONFIG_CA_AGREEMENT,
+ MD_CONFIG_DRIVE_MODE,
+ MD_CONFIG_LOCAL_80,
+ MD_CONFIG_LOCAL_443,
+ MD_CONFIG_RENEW_WINDOW,
+} md_config_var_t;
+
+typedef struct {
+ const char *name;
+ const server_rec *s;
+
+ int local_80;
+ int local_443;
+
+ apr_array_header_t *mds; /* array of md_t pointers */
+ const char *ca_url;
+ const char *ca_proto;
+ const char *ca_agreement;
+ apr_array_header_t *ca_challenges; /* challenge types allowed */
+
+ int drive_mode;
+ apr_interval_time_t renew_window; /* time for renewal before expiry */
+
+ const md_t *md;
+ const char *base_dir;
+ struct md_store_t *store;
+
+} md_config_t;
+
+typedef struct {
+ md_t *md;
+} md_config_dir_t;
+
+void *md_config_create_svr(apr_pool_t *pool, server_rec *s);
+void *md_config_merge_svr(apr_pool_t *pool, void *basev, void *addv);
+void *md_config_create_dir(apr_pool_t *pool, char *dummy);
+void *md_config_merge_dir(apr_pool_t *pool, void *basev, void *addv);
+
+extern const command_rec md_cmds[];
+
+/* Get the effective md configuration for the connection */
+const md_config_t *md_config_cget(conn_rec *c);
+/* Get the effective md configuration for the server */
+const md_config_t *md_config_get(server_rec *s);
+/* Get the effective md configuration for the server, but make it
+ * unique to this server_rec, so that any changes only affect this server */
+const md_config_t *md_config_get_unique(server_rec *s, apr_pool_t *p);
+
+const char *md_config_gets(const md_config_t *config, md_config_var_t var);
+int md_config_geti(const md_config_t *config, md_config_var_t var);
+apr_interval_time_t md_config_get_interval(const md_config_t *config, md_config_var_t var);
+
+#endif /* md_config_h */