ee7ace0a1e91e7c0578468a3ed21d9c6bfa546d7
[rahunas] / src / rh-config.h
1 /**
2  * RahuNAS configuration header
3  * Author: Suriya Soutmun <darksolar@gmail.com>
4  * Date:   2008-11-26
5  */
6 #ifndef __RH_CONFIG_H 
7 #define __RH_CONFIG_H 
8
9 #include "../lcfg/lcfg_static.h"
10 #include "rh-server.h"
11
12 #define DEFAULT_LOG RAHUNAS_LOG_DIR "rahunas.log"
13 #define VSERVER_ID 99
14 #define IDLE_TIMEOUT 600
15 #define POLLING 60 
16 #define BANDWIDTH_SHAPE 0
17
18 #define XMLSERVICE_HOST "localhost"
19 #define XMLSERVICE_PORT 80
20 #define XMLSERVICE_URL  "/rahunas_service/xmlrpc_service.php"
21
22 #define CONFIG_FILE RAHUNAS_CONF_DIR "rahunas.conf"
23 #define DEFAULT_PID RAHUNAS_RUN_DIR "rahunasd.pid"
24 #define DB_NAME "rahunas"
25
26 struct rahunas_main_config {
27   char *conf_dir;
28   char *log_file;
29   int  polling_interval;
30   int  bandwidth_shape;
31 };
32
33 struct rahunas_vserver_config {
34   int  vserver_id;
35   char *vserver_name;
36   int  idle_timeout;
37   char *vserver_ip;
38 };
39
40 union rahunas_config {
41   struct rahunas_main_config rh_main;
42   struct rahunas_vserver_config rh_vserver;
43 };
44
45 enum config_type {
46   MAIN,
47   VSERVER
48 };
49
50 int get_config(const char *cfg_file, union rahunas_config *config);
51 int get_value(const char *cfg_file, const char *key, void **data, size_t *len);
52 int get_vservers_config(const char *conf_dir, struct main_server *server);
53 int cleanup_vserver_config(struct rahunas_vserver_config *config);
54 int cleanup_mainserver_config(struct rahunas_main_config *config);
55 enum lcfg_status rahunas_visitor(const char *key, void *data, size_t size, 
56                                  void *user_data);
57 #endif // __RH_CONFIG_H