commit - 20c9ff466beafa357d501494989a6263516d3342
commit + b2a6b6137186dd3fce21640150926a133a35c2c8
blob - 510d71f5110e6e88f492bd2caf21369c3ecef813
blob + e5ad04bdeb44f3af2815d0aa3b4a3f2f9c558ad3
--- gmid.c
+++ gmid.c
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");
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
const char *ext;
};
-struct mimes {
+struct mime {
struct etm *t;
size_t len;
size_t cap;
int port;
int ipv6;
uint32_t protos;
- struct mimes mimes;
+ struct mime mime;
};
extern struct conf conf;
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
#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"},
};
for (i = m; i->mime != NULL; ++i)
- add_mime(i->mime, i->ext);
+ add_mime(mime, i->mime, i->ext);
}
static const char *
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
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 */