diff -r 99a34860c105 -r d938228c382e src/server/config/keyfile.h --- 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 }