mirror of https://github.com/omar-polo/gmid.git
make the mime types fixed-sized too
This commit is contained in:
parent
7277bb7dc2
commit
aa9543b9fd
7
gmid.h
7
gmid.h
|
@ -70,6 +70,9 @@
|
|||
#define DOMAIN_NAME_LEN (253+1)
|
||||
#define LABEL_LEN (63+1)
|
||||
|
||||
#define MEDIATYPE_NAMEMAX 128 /* file name extension */
|
||||
#define MEDIATYPE_TYPEMAX 128 /* length of type/subtype */
|
||||
|
||||
#define FCGI_MAX 32
|
||||
#define PROC_MAX 16
|
||||
|
||||
|
@ -175,8 +178,8 @@ struct vhost {
|
|||
};
|
||||
|
||||
struct etm { /* extension to mime */
|
||||
char *mime;
|
||||
char *ext;
|
||||
char mime[MEDIATYPE_TYPEMAX];
|
||||
char ext[MEDIATYPE_NAMEMAX];
|
||||
};
|
||||
|
||||
struct mime {
|
||||
|
|
18
mime.c
18
mime.c
|
@ -35,7 +35,6 @@ init_mime(struct mime *mime)
|
|||
int
|
||||
add_mime(struct mime *mime, const char *mt, const char *ext)
|
||||
{
|
||||
char *mimetype, *extension;
|
||||
struct etm *t;
|
||||
size_t newcap;
|
||||
|
||||
|
@ -49,15 +48,11 @@ add_mime(struct mime *mime, const char *mt, const char *ext)
|
|||
mime->cap = newcap;
|
||||
}
|
||||
|
||||
if ((mimetype = strdup(mt)) == NULL)
|
||||
t = &mime->t[mime->len];
|
||||
if (strlcpy(t->mime, mt, sizeof(t->mime)) >= sizeof(t->mime))
|
||||
return -1;
|
||||
if ((extension = strdup(ext)) == NULL) {
|
||||
free(mimetype);
|
||||
if (strlcpy(t->ext, ext, sizeof(t->ext)) >= sizeof(t->ext))
|
||||
return -1;
|
||||
}
|
||||
|
||||
mime->t[mime->len].mime = mimetype;
|
||||
mime->t[mime->len].ext = extension;
|
||||
mime->len++;
|
||||
return 0;
|
||||
}
|
||||
|
@ -157,12 +152,5 @@ mime(struct vhost *host, const char *path)
|
|||
void
|
||||
free_mime(struct mime *m)
|
||||
{
|
||||
struct etm *t;
|
||||
|
||||
for (t = m->t; t->mime != NULL; ++t) {
|
||||
free(t->mime);
|
||||
free(t->ext);
|
||||
}
|
||||
|
||||
free(m->t);
|
||||
}
|
||||
|
|
10
parse.y
10
parse.y
|
@ -225,6 +225,8 @@ option : CHROOT string {
|
|||
"`types' block.");
|
||||
if (add_mime(&conf.mime, $2, $3) == -1)
|
||||
err(1, "add_mime");
|
||||
free($2);
|
||||
free($3);
|
||||
}
|
||||
| MAP string TOEXT string {
|
||||
yywarn("`map mime to-ext' is deprecated and will be "
|
||||
|
@ -232,6 +234,8 @@ option : CHROOT string {
|
|||
"`types' block.");
|
||||
if (add_mime(&conf.mime, $2, $4) == -1)
|
||||
err(1, "add_mime");
|
||||
free($2);
|
||||
free($4);
|
||||
}
|
||||
| PORT NUM { conf.port = check_port_num($2); }
|
||||
| PREFORK NUM { conf.prefork = check_prefork_num($2); }
|
||||
|
@ -477,7 +481,10 @@ mediaopts_l : mediaopts_l mediaoptsl nl
|
|||
| mediaoptsl nl
|
||||
;
|
||||
|
||||
mediaoptsl : STRING { current_media = $1; } medianames_l optsemicolon
|
||||
mediaoptsl : STRING {
|
||||
free(current_media);
|
||||
current_media = $1;
|
||||
} medianames_l optsemicolon
|
||||
| include
|
||||
;
|
||||
|
||||
|
@ -488,6 +495,7 @@ medianames_l : medianames_l medianamesl
|
|||
medianamesl : numberstring {
|
||||
if (add_mime(&conf.mime, current_media, $1) == -1)
|
||||
err(1, "add_mime");
|
||||
free($1);
|
||||
}
|
||||
;
|
||||
|
||||
|
|
Loading…
Reference in New Issue