src/server/config/mimeconf.h

changeset 415
d938228c382e
parent 255
b5d15a4a19f5
--- a/src/server/config/mimeconf.h	Wed Nov 02 19:19:01 2022 +0100
+++ b/src/server/config/mimeconf.h	Sun Nov 06 15:53:32 2022 +0100
@@ -35,22 +35,32 @@
 extern "C" {
 #endif
 
+#define CFG_MIME_ADD(list_begin, list_end, directive) \
+    cx_linked_list_add((void**)list_begin, (void**)list_end, -1, offsetof(MimeDirective, next), directive)
+    
+typedef struct _mime_dir MimeDirective;
+    
 typedef struct _mime_conf {
-    ConfigParser parser;
-    UcxList      *directives; // MimeDirective list
-    int          ntypes;
+    ConfigParser  parser;
+    MimeDirective *directives_begin;
+    MimeDirective *directives_end;
+    int           ntypes;
 } MimeConfig;
 
-typedef struct _mime_dir {
-    sstr_t  type;
-    UcxList *exts; // char*
-} MimeDirective;
+struct _mime_dir {
+    cxmutstr  type;
+    //UcxList *exts; // char*
+    ssize_t  nextensions;
+    cxstring *extensions;
+    
+    MimeDirective *next;
+};
 
 MimeConfig *load_mime_config(const char *file);
 
 void free_mime_config(MimeConfig *conf);
 
-int mimeconf_parse(void *p, ConfigLine *begin, ConfigLine *end, sstr_t line);
+int mimeconf_parse(void *p, ConfigLine *begin, ConfigLine *end, cxmutstr line);
 
 #ifdef	__cplusplus
 }

mercurial