itcheck if polls/ exists, create it if not - vote - simple cgi voting system for web and gopher Err mx1.adamsgaard.dk 70 hgit clone git://src.adamsgaard.dk/vote URL:git://src.adamsgaard.dk/vote mx1.adamsgaard.dk 70 1Log /src/vote/log.gph mx1.adamsgaard.dk 70 1Files /src/vote/files.gph mx1.adamsgaard.dk 70 1Refs /src/vote/refs.gph mx1.adamsgaard.dk 70 1README /src/vote/file/README.gph mx1.adamsgaard.dk 70 1LICENSE /src/vote/file/LICENSE.gph mx1.adamsgaard.dk 70 i--- Err mx1.adamsgaard.dk 70 1commit 338931d646f13dcfa659fe1ecebefcc79abdda1b /src/vote/commit/338931d646f13dcfa659fe1ecebefcc79abdda1b.gph mx1.adamsgaard.dk 70 1parent cb2cf1d1ce9a181c872544f55ef5531725e57864 /src/vote/commit/cb2cf1d1ce9a181c872544f55ef5531725e57864.gph mx1.adamsgaard.dk 70 hAuthor: Anders Damsgaard URL:mailto:anders@adamsgaard.dk mx1.adamsgaard.dk 70 iDate: Sun, 27 Sep 2020 01:09:12 +0200 Err mx1.adamsgaard.dk 70 i Err mx1.adamsgaard.dk 70 icheck if polls/ exists, create it if not Err mx1.adamsgaard.dk 70 i Err mx1.adamsgaard.dk 70 iDiffstat: Err mx1.adamsgaard.dk 70 i M vote.c | 15 ++++++++++----- Err mx1.adamsgaard.dk 70 i Err mx1.adamsgaard.dk 70 i1 file changed, 10 insertions(+), 5 deletions(-) Err mx1.adamsgaard.dk 70 i--- Err mx1.adamsgaard.dk 70 1diff --git a/vote.c b/vote.c /src/vote/file/vote.c.gph mx1.adamsgaard.dk 70 it@@ -6,6 +6,7 @@ Err mx1.adamsgaard.dk 70 i #include Err mx1.adamsgaard.dk 70 i Err mx1.adamsgaard.dk 70 i #define OUT(s) (fputs((s), stdout)) Err mx1.adamsgaard.dk 70 i+#define POLLS_DIR "polls" Err mx1.adamsgaard.dk 70 i Err mx1.adamsgaard.dk 70 i void Err mx1.adamsgaard.dk 70 i print_html_head() { Err mx1.adamsgaard.dk 70 it@@ -39,17 +40,21 @@ int Err mx1.adamsgaard.dk 70 i main() { Err mx1.adamsgaard.dk 70 i char *query; Err mx1.adamsgaard.dk 70 i char *q; Err mx1.adamsgaard.dk 70 i+ struct stat sb; Err mx1.adamsgaard.dk 70 i Err mx1.adamsgaard.dk 70 i- if (pledge("stdio cpath", NULL) == -1) { Err mx1.adamsgaard.dk 70 i+ if (pledge("stdio cpath rpath", NULL) == -1) { Err mx1.adamsgaard.dk 70 i fprintf(stderr, "pledge: %s\n", strerror(errno)); Err mx1.adamsgaard.dk 70 i OUT("Status: 500 Internal Server Error\r\n\r\n"); Err mx1.adamsgaard.dk 70 i exit(1); Err mx1.adamsgaard.dk 70 i } Err mx1.adamsgaard.dk 70 i+ if (stat(POLLS_DIR, &sb) == -1) { Err mx1.adamsgaard.dk 70 i+ fprintf(stderr, "dir %s does not exist: %s\n", POLLS_DIR, strerror(errno)); Err mx1.adamsgaard.dk 70 i Err mx1.adamsgaard.dk 70 i- if (mkdir("polls", 0755) == -1) { Err mx1.adamsgaard.dk 70 i- fprintf(stderr, "mkdir polls/ failed: %s\n", strerror(errno)); Err mx1.adamsgaard.dk 70 i- OUT("Status: 500 Internal Server Error\r\n\r\n"); Err mx1.adamsgaard.dk 70 i- exit(0); Err mx1.adamsgaard.dk 70 i+ if (mkdir(POLLS_DIR, 0755) == -1) { Err mx1.adamsgaard.dk 70 i+ fprintf(stderr, "mkdir polls/ failed: %s\n", strerror(errno)); Err mx1.adamsgaard.dk 70 i+ OUT("Status: 500 Internal Server Error\r\n\r\n"); Err mx1.adamsgaard.dk 70 i+ exit(0); Err mx1.adamsgaard.dk 70 i+ } Err mx1.adamsgaard.dk 70 i } Err mx1.adamsgaard.dk 70 i Err mx1.adamsgaard.dk 70 i if (!(query = getenv("QUERY_STRING"))) Err mx1.adamsgaard.dk 70 .