commit b2a6b6137186dd3fce21640150926a133a35c2c8 from: Omar Polo date: Thu Jan 21 15:01:37 2021 UTC rename mimes to mime ; pass config esplicitly to mime* functions commit - 20c9ff466beafa357d501494989a6263516d3342 commit + b2a6b6137186dd3fce21640150926a133a35c2c8 blob - 510d71f5110e6e88f492bd2caf21369c3ecef813 blob + e5ad04bdeb44f3af2815d0aa3b4a3f2f9c558ad3 --- gmid.c +++ gmid.c @@ -304,7 +304,7 @@ listener_main() struct tls *ctx = NULL; struct tls_config *tlsconf; - load_default_mime(); + load_default_mime(&conf.mime); if ((tlsconf = tls_config_new()) == NULL) fatal("tls_config_new"); @@ -364,7 +364,7 @@ main(int argc, char **argv) conf.ipv6 = 0; conf.protos = TLS_PROTOCOL_TLSv1_2 | TLS_PROTOCOL_TLSv1_3; - init_mime(); + init_mime(&conf.mime); while ((ch = getopt(argc, argv, "6C:c:d:fhK:np:x:")) != -1) { switch (ch) { blob - 18ad371d8005469107b8ecdf85e2b907eae171df blob + e647002265c946d14c1d80679a73bf2335231574 --- gmid.h +++ gmid.h @@ -74,7 +74,7 @@ struct etm { /* extension to mime */ const char *ext; }; -struct mimes { +struct mime { struct etm *t; size_t len; size_t cap; @@ -85,7 +85,7 @@ struct conf { int port; int ipv6; uint32_t protos; - struct mimes mimes; + struct mime mime; }; extern struct conf conf; @@ -167,10 +167,9 @@ extern int yyparse(void); extern int yylex(void); /* mime.c */ -void init_mime(void); -void add_mime(const char*, const char*); -void load_default_mime(void); -int load_mime_file(const char*); +void init_mime(struct mime*); +void add_mime(struct mime*, const char*, const char*); +void load_default_mime(struct mime*); const char *mime(struct vhost*, const char*); /* server.c */ blob - f81a813314e549d370531b0bac2298603550c897 blob + f389aa84b496a5b6a4ff7871c9cd6d013077a618 --- mime.c +++ mime.c @@ -21,36 +21,35 @@ #include "gmid.h" void -init_mime(void) +init_mime(struct mime *mime) { - conf.mimes.len = 0; - conf.mimes.cap = 16; + mime->len = 0; + mime->cap = 16; - conf.mimes.t = calloc(conf.mimes.cap, sizeof(struct etm)); - if (conf.mimes.t == NULL) + mime->t = calloc(mime->cap, sizeof(struct etm)); + if (mime->t == NULL) fatal("calloc: %s", strerror(errno)); } /* register mime for the given extension */ void -add_mime(const char *mime, const char *ext) +add_mime(struct mime *mime, const char *mt, const char *ext) { - if (conf.mimes.len == conf.mimes.cap) { - conf.mimes.cap *= 1.5; - conf.mimes.t = realloc(conf.mimes.t, - conf.mimes.cap * sizeof(struct etm)); - if (conf.mimes.t == NULL) + if (mime->len == mime->cap) { + mime->cap *= 1.5; + mime->t = realloc(mime->t, mime->cap * sizeof(struct etm)); + if (mime->t == NULL) fatal("realloc: %s", strerror(errno)); } - conf.mimes.t[conf.mimes.len].mime = mime; - conf.mimes.t[conf.mimes.len].ext = ext; - conf.mimes.len++; + mime->t[mime->len].mime = mt; + mime->t[mime->len].ext = ext; + mime->len++; } /* load a default set of common mime-extension associations */ void -load_default_mime() +load_default_mime(struct mime *mime) { struct etm *i, m[] = { {"application/pdf", "pdf"}, @@ -69,7 +68,7 @@ load_default_mime() }; for (i = m; i->mime != NULL; ++i) - add_mime(i->mime, i->ext); + add_mime(mime, i->mime, i->ext); } static const char * @@ -100,7 +99,7 @@ mime(struct vhost *host, const char *path) if ((ext = path_ext(path)) == NULL) return def; - for (t = conf.mimes.t; t->mime != NULL; ++t) + for (t = conf.mime.t; t->mime != NULL; ++t) if (!strcmp(ext, t->ext)) return t->mime; blob - 3fefb0b3fce26d73fcb0ea4e018576a6fbe5661d blob + e72f2f0478ec188fa0edaac1daa2f66e2741d552 --- parse.y +++ parse.y @@ -65,7 +65,7 @@ option : TDAEMON TBOOL { conf.foreground = !$2; } if (tls_config_parse_protocols(&conf.protos, $2) == -1) errx(1, "invalid protocols string \"%s\"", $2); } - | TMIME TSTRING TSTRING { add_mime($2, $3); } + | TMIME TSTRING TSTRING { add_mime(&conf.mime, $2, $3); } ; vhosts : /* empty */