commit - dd3e110a707fc9ac5653969b22e6489f7e100d50
commit + 231bfcdc0391cde9077e6ae0cd14dc6831fb1b88
blob - 1e57bcada8f62c5281cccb3658290ad8c999a8b9
blob + e5cf21de057c543cc316c667a0ccab5ec6042eff
--- gmid.c
+++ gmid.c
#include <err.h>
#include <errno.h>
#include <fcntl.h>
+#include <limits.h>
#include <poll.h>
#include <signal.h>
#include <stdio.h>
handle(&fds[i], &clients[i]);
}
}
+}
+
+char *
+absolutify_path(const char *path)
+{
+ char *wd, *r;
+
+ if (*path == '/')
+ return strdup(path);
+
+ wd = getwd(NULL);
+ if (asprintf(&r, "%s/%s", wd, path) == -1)
+ err(1, "asprintf");
+ free(wd);
+ return r;
}
void
connected_clients = 0;
- dir = "docs/";
+ dir = absolutify_path("docs");
cgi = NULL;
port = 1965;
foreground = 0;
break;
case 'd':
- dir = optarg;
+ free((char*)dir);
+ if ((dir = absolutify_path(optarg)) == NULL)
+ err(1, "absolutify_path");
break;
case 'f':