src/server/config/keyfile.h

changeset 415
d938228c382e
parent 255
b5d15a4a19f5
--- a/src/server/config/keyfile.h	Wed Nov 02 19:19:01 2022 +0100
+++ b/src/server/config/keyfile.h	Sun Nov 06 15:53:32 2022 +0100
@@ -36,23 +36,30 @@
 extern "C" {
 #endif
 
+#define CFG_KEYFILE_ADD(list_begin, list_end, elm) \
+    cx_linked_list_add((void**)list_begin, (void**)list_end, -1, offsetof(KeyfileEntry, next), elm)
+    
+typedef struct _keyfile_entry KeyfileEntry;
+    
 typedef struct _keyfile_conf {
     ConfigParser parser;
     char         *file;
-    UcxList      *users; // KeyfileEntry list
+    KeyfileEntry *users_begin; // KeyfileEntry list
+    KeyfileEntry *users_end;
 } KeyfileConfig;
 
-typedef struct _keyfile_entry {
-    sstr_t               name;
+struct _keyfile_entry {
+    cxmutstr             name;
     enum KeyfileHashType hashtype;
-    sstr_t               hashdata;
-    sstr_t               *groups;
+    cxmutstr             hashdata;
+    cxmutstr             *groups;
     size_t               numgroups;
-} KeyfileEntry;
+    KeyfileEntry         *next;
+};
 
 KeyfileConfig *load_keyfile_config(const char *file);
 void free_keyfile_config(KeyfileConfig *conf);
-int keyfile_parse(void *p, ConfigLine *begin, ConfigLine *end, sstr_t line);
+int keyfile_parse(void *p, ConfigLine *begin, ConfigLine *end, cxmutstr line);
 
 #ifdef	__cplusplus
 }

mercurial