summaryrefslogtreecommitdiff
path: root/src/config.c
diff options
context:
space:
mode:
authorAnders Betts <anders.betts@gmail.com>2026-09-17 21:26:20 +0200
committerAnders Betts <anders.betts@gmail.com>2026-09-17 21:26:20 +0200
commited1c15929d2eb2dbc6432986c26661bf1549964a (patch)
tree4f04934edef686b19d16e1bb2f79bb5c15e142de /src/config.c
parent380195f7cd5e57acf2c1cf2bc41069e6b0b979ed (diff)
downloadbokf-ed1c15929d2eb2dbc6432986c26661bf1549964a.tar.gz
bokf-ed1c15929d2eb2dbc6432986c26661bf1549964a.zip
Add native TLS transport, TLS clients and lego cert sidecarv0.1.1
- bokfd: optional TLS listener (OpenSSL), certificate reload on change - clients: tls:host:port targets with chain and host verification - compose: port 8788 and an INWX/lego renewal sidecar - Makefile: header dependency tracking (-MMD -MP)
Diffstat (limited to 'src/config.c')
-rw-r--r--src/config.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/config.c b/src/config.c
index 3bce6e9..d1f392a 100644
--- a/src/config.c
+++ b/src/config.c
@@ -24,6 +24,10 @@ void config_defaults(void)
g_cfg.export_dir = xstrdup("/var/lib/bokfd/export");
g_cfg.tcp_addr = NULL;
g_cfg.tcp_enabled = 0;
+ g_cfg.tls_addr = NULL;
+ g_cfg.tls_enabled = 0;
+ g_cfg.tls_cert = xstrdup("/var/lib/bokfd/certs/fullchain.pem");
+ g_cfg.tls_key = xstrdup("/var/lib/bokfd/certs/privkey.pem");
g_cfg.log_level = LOG_INFO;
g_cfg.allow_org_create = 1;
g_cfg.audit_reads = 0;
@@ -52,6 +56,17 @@ static int apply_kv(const char *key, const char *val, char **err)
set_str(&g_cfg.tcp_addr, val);
g_cfg.tcp_enabled = 1;
}
+ } else if (strcmp(key, "tls") == 0) {
+ if (strcmp(val, "off") == 0 || strcmp(val, "") == 0) {
+ g_cfg.tls_enabled = 0;
+ } else {
+ set_str(&g_cfg.tls_addr, val);
+ g_cfg.tls_enabled = 1;
+ }
+ } else if (strcmp(key, "tls_cert") == 0) {
+ set_str(&g_cfg.tls_cert, val);
+ } else if (strcmp(key, "tls_key") == 0) {
+ set_str(&g_cfg.tls_key, val);
} else if (strcmp(key, "log_level") == 0) {
g_cfg.log_level = log_level_from_name(val);
} else if (strcmp(key, "allow_org_create") == 0) {
@@ -137,6 +152,12 @@ void config_apply_env(void)
set_str(&g_cfg.export_dir, v);
if ((v = getenv("BOKFD_TCP")))
apply_kv("tcp", v, NULL);
+ if ((v = getenv("BOKFD_TLS")))
+ apply_kv("tls", v, NULL);
+ if ((v = getenv("BOKFD_TLS_CERT")))
+ set_str(&g_cfg.tls_cert, v);
+ if ((v = getenv("BOKFD_TLS_KEY")))
+ set_str(&g_cfg.tls_key, v);
if ((v = getenv("BOKFD_LOG_LEVEL")))
g_cfg.log_level = log_level_from_name(v);
if ((v = getenv("BOKFD_ALLOW_ORG_CREATE")))
@@ -164,6 +185,9 @@ void config_free(void)
free(g_cfg.backup_dir);
free(g_cfg.export_dir);
free(g_cfg.tcp_addr);
+ free(g_cfg.tls_addr);
+ free(g_cfg.tls_cert);
+ free(g_cfg.tls_key);
free(g_cfg.synchronous);
free(g_cfg.chart_k2_file);
free(g_cfg.chart_k3_file);