diff options
author | June McEnroe <june@causal.agency> | 2021-10-05 23:16:32 -0400 |
---|---|---|
committer | June McEnroe <june@causal.agency> | 2021-10-05 23:30:09 -0400 |
commit | fa944345a63a083555a1f1933aabf4ea6f27a307 (patch) | |
tree | 37a053122b20d4c306013911cb022b000cecf0b6 /local.c | |
parent | Load and reload local certificates like normal (diff) | |
download | pounce-fa944345a63a083555a1f1933aabf4ea6f27a307.tar.gz pounce-fa944345a63a083555a1f1933aabf4ea6f27a307.zip |
Refactor XDG base directory iterator API
Finally something more reasonable for call sites.
Diffstat (limited to '')
-rw-r--r-- | local.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/local.c b/local.c index 35286b3..ece94ca 100644 --- a/local.c +++ b/local.c @@ -27,6 +27,7 @@ #include <err.h> #include <errno.h> +#include <limits.h> #include <netdb.h> #include <netinet/in.h> #include <stdbool.h> @@ -52,24 +53,22 @@ int localConfig( if (!config) errx(EX_SOFTWARE, "tls_config_new"); int error; - const char *dirs = NULL; - for (const char *path; NULL != (path = configPath(&dirs, cert));) { - error = tls_config_set_cert_file(config, path); + char buf[PATH_MAX]; + for (int i = 0; configPath(buf, sizeof(buf), cert, i); ++i) { + error = tls_config_set_cert_file(config, buf); if (!error) break; } if (error) goto fail; - dirs = NULL; - for (const char *path; NULL != (path = configPath(&dirs, priv));) { - error = tls_config_set_key_file(config, path); + for (int i = 0; configPath(buf, sizeof(buf), priv, i); ++i) { + error = tls_config_set_key_file(config, buf); if (!error) break; } if (error) goto fail; if (ca) { - dirs = NULL; - for (const char *path; NULL != (path = configPath(&dirs, ca));) { - error = tls_config_set_ca_file(config, path); + for (int i = 0; configPath(buf, sizeof(buf), ca, i); ++i) { + error = tls_config_set_ca_file(config, buf); if (!error) break; } if (error) goto fail; |