about summary refs log tree commit diff
path: root/server.c
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2020-08-24 21:58:59 -0400
committerJune McEnroe <june@causal.agency>2020-08-24 21:58:59 -0400
commitd5e1e30271d5173abf37d0028f82dab8ca052ba1 (patch)
treee2479490301faebc8457ca0feb1ab4184e8857b8 /server.c
parentUse configOpen in getopt_config (diff)
downloadpounce-d5e1e30271d5173abf37d0028f82dab8ca052ba1.tar.gz
pounce-d5e1e30271d5173abf37d0028f82dab8ca052ba1.zip
Use configPath to load client cert/priv
Diffstat (limited to '')
-rw-r--r--server.c23
1 files changed, 17 insertions, 6 deletions
diff --git a/server.c b/server.c
index 1c87c2a..89e3e36 100644
--- a/server.c
+++ b/server.c
@@ -57,13 +57,24 @@ void serverConfig(bool insecure, const char *cert, const char *priv) {
 	}
 
 	if (cert) {
-		error = tls_config_set_keypair_file(config, cert, (priv ? priv : cert));
-		if (error) {
-			errx(
-				EX_SOFTWARE, "tls_config_set_keypair_file: %s",
-				tls_config_error(config)
-			);
+		const char *dirs = NULL;
+		for (const char *path; NULL != (path = configPath(&dirs, cert));) {
+			if (priv) {
+				error = tls_config_set_cert_file(config, path);
+			} else {
+				error = tls_config_set_keypair_file(config, path, path);
+			}
+			if (!error) break;
+		}
+		if (error) errx(EX_NOINPUT, "%s: %s", cert, tls_config_error(config));
+	}
+	if (priv) {
+		const char *dirs = NULL;
+		for (const char *path; NULL != (path = configPath(&dirs, priv));) {
+			error = tls_config_set_key_file(config, path);
+			if (!error) break;
 		}
+		if (error) errx(EX_NOINPUT, "%s: %s", priv, tls_config_error(config));
 	}
 
 	client = tls_client();