src/server/config/mimeconf.h

changeset 415
d938228c382e
parent 255
b5d15a4a19f5
equal deleted inserted replaced
414:99a34860c105 415:d938228c382e
33 33
34 #ifdef __cplusplus 34 #ifdef __cplusplus
35 extern "C" { 35 extern "C" {
36 #endif 36 #endif
37 37
38 #define CFG_MIME_ADD(list_begin, list_end, directive) \
39 cx_linked_list_add((void**)list_begin, (void**)list_end, -1, offsetof(MimeDirective, next), directive)
40
41 typedef struct _mime_dir MimeDirective;
42
38 typedef struct _mime_conf { 43 typedef struct _mime_conf {
39 ConfigParser parser; 44 ConfigParser parser;
40 UcxList *directives; // MimeDirective list 45 MimeDirective *directives_begin;
41 int ntypes; 46 MimeDirective *directives_end;
47 int ntypes;
42 } MimeConfig; 48 } MimeConfig;
43 49
44 typedef struct _mime_dir { 50 struct _mime_dir {
45 sstr_t type; 51 cxmutstr type;
46 UcxList *exts; // char* 52 //UcxList *exts; // char*
47 } MimeDirective; 53 ssize_t nextensions;
54 cxstring *extensions;
55
56 MimeDirective *next;
57 };
48 58
49 MimeConfig *load_mime_config(const char *file); 59 MimeConfig *load_mime_config(const char *file);
50 60
51 void free_mime_config(MimeConfig *conf); 61 void free_mime_config(MimeConfig *conf);
52 62
53 int mimeconf_parse(void *p, ConfigLine *begin, ConfigLine *end, sstr_t line); 63 int mimeconf_parse(void *p, ConfigLine *begin, ConfigLine *end, cxmutstr line);
54 64
55 #ifdef __cplusplus 65 #ifdef __cplusplus
56 } 66 }
57 #endif 67 #endif
58 68

mercurial