Browse Source

gmnlm: create cert dir on 6x response

So that the OpenSSL command doesn't fail when the cert dir hasn't
already been created.
pull/16/head
Eyal Sawady 3 months ago
committed by René Wagner
parent
commit
3dd06ab481
  1. 1
      include/util.h
  2. 7
      src/gmnlm.c
  3. 2
      src/util.c

1
include/util.h

@ -9,6 +9,7 @@ struct pathspec {
};
char *getpath(const struct pathspec *paths, size_t npaths);
void posix_dirname(char *path, char *dname);
int mkdirs(char *path, mode_t mode);
int download_resp(FILE *out, struct gemini_response resp, const char *path,
char *url);

7
src/gmnlm.c

@ -562,6 +562,13 @@ do_requests(struct browser *browser, struct gemini_response *resp)
n = snprintf(certpath, sizeof(certpath), path_fmt, host, "crt");
assert(n < sizeof(certpath));
n = snprintf(keypath, sizeof(keypath), path_fmt, host, "key");
char dname[PATH_MAX + 1];
posix_dirname(certpath, dname);
if (mkdirs(dname, 0755) != 0) {
fprintf(stderr, "Error creating directory %s: %s\n",
dname, strerror(errno));
break;
}
assert(n < sizeof(keypath));
fprintf(stderr, "The server requested a client certificate.\n"
"Presently, this process is not automated.\n"

2
src/util.c

@ -11,7 +11,7 @@
#include <sys/stat.h>
#include "util.h"
static void
void
posix_dirname(char *path, char *dname)
{
char p[PATH_MAX+1];

Loading…
Cancel
Save