diff -r 0de4a90979e1 -r d25825f37967 src/server/config/serverconf.h --- a/src/server/config/serverconf.h Wed Jun 26 17:14:45 2013 +0200 +++ b/src/server/config/serverconf.h Fri Jun 28 14:52:35 2013 +0200 @@ -51,13 +51,68 @@ ServerConfigObject *obj; } ServerConfig; +// server.conf objects + +typedef struct _cfg_listener { + ServerConfigObject *cfgobj; + sstr_t name; + sstr_t vs; + sstr_t threadpool; + sstr_t address; + int port; + int nacceptors; + int cfg_correct; +} CfgListener; + +typedef struct _cfg_keyfile_authdb { + sstr_t file; +} CfgKeyfileAuthDB; + +typedef struct _cfg_ldap_authdb { + sstr_t host; + int port; + sstr_t basedn; + sstr_t binddn; + sstr_t bindpw; +} CfgLDAPAuthDB; + +union authdb { + CfgKeyfileAuthDB keyfile; + CfgLDAPAuthDB ldap; +}; + +enum authdb_type { + AUTHDB_TYPE_KEYFILE, + AUTHDB_TYPE_LDAP +}; + +typedef struct _cfg_authdb { + sstr_t name; + enum authdb_type type; + union authdb cfg; + int cfg_correct; +} CfgAuthDB; + + +/* + * Loads and parses a server configuration file. The function only structures + * the file content to configuration objects with directives. The semantics + * of the objects and directives can be extracted with the srvcfg_* funcsions. + */ ServerConfig *load_server_config(char *file); +/* + * frees the ServerConfig object + */ void free_server_config(ServerConfig *conf); +// private - parses a server.conf line int serverconf_parse(void *p, ConfigLine *begin, ConfigLine *end, sstr_t line); +UcxList* srvcfg_get_listeners(ServerConfig *cfg, UcxMempool *mp, int *error); + + #ifdef __cplusplus } #endif