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