1 #ifndef MIME_TYPES_H
2 #define MIME_TYPES_H
3 
4 #include <vstr.h>
5 
6 typedef struct Mime_types_data
7 {
8  void (*pref_func)(Vstr_ref *);
9  Vstr_base *ent_data;
10  Vstr_sects *ents;
11 } Mime_types_data;
12 
13 /* allow different default types, without having to load differednt files... */
14 typedef struct Mime_types
15 {
16  Vstr_ref *ref;
17 
18  const Vstr_base *def_type_vs1;
19  size_t           def_type_pos;
20  size_t           def_type_len;
21 } Mime_types;
22 
23 extern int mime_types_init(Mime_types *, const Vstr_base *, size_t, size_t);
24 extern void mime_types_exit(Mime_types *);
25 
26 extern int mime_types_load_simple(Mime_types *, const char *);
27 
28 extern int mime_types_match(const Mime_types *,
29                             const Vstr_base *, size_t, size_t,
30                             const Vstr_base **, size_t *, size_t *);
31 extern void mime_types_combine_filedata(Mime_types *, Mime_types *);
32 
33 #endif
34