src/server/config/serverconf.h

changeset 81
d25825f37967
parent 44
3da1f7b6847f
child 91
fac51f87def0
--- 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

mercurial