00001 #if !defined(_SETTINGS_H_)
00002 #define _SETTINGS_H_
00003
00004 #include <apr_xml.h>
00005 #include "sumalib.h"
00006
00007 typedef struct str_elem_s str_elem_t;
00008
00009 typedef struct str_elem_link_s str_elem_link_t;
00010 struct str_elem_link_s {
00011 str_elem_t *prev;
00012 str_elem_t *next;
00013 };
00014
00015 struct str_elem_s {
00016 char *strval;
00017 str_elem_link_t link;
00018 };
00019
00020 typedef struct {
00021 char *uuid;
00022 int is_listening;
00023 int basic_port;
00024 str_elem_link_t entry_points;
00025 } general_settings_t;
00026
00027 typedef struct {
00028 int is_entry_point;
00029 str_elem_link_t allow_list;
00030 str_elem_link_t deny_list;
00031 } entry_point_settings_t;
00032
00033 typedef struct {
00034 int is_listening;
00035 int debug_port;
00036 } debug_settings_t;
00037
00038 typedef struct {
00039 int level;
00040 } logger_settings_t;
00041
00042 typedef struct {
00043 general_settings_t general_settings;
00044 entry_point_settings_t entry_point_settings;
00045 debug_settings_t debug_settings;
00046 logger_settings_t logger_settings;
00047 } settings_t;
00048
00049 extern settings_t settings;
00050
00051 int init_settings(char *filename);
00052 #if defined(XML_SETTINGS)
00053 void set_uuid_slot(p2p_uuid_t *uuid);
00054 #endif
00055 int save_settings(char *filename);
00056
00057 #endif