ircd/config.hpp
#ifndef CONFIG_HPP_
#define CONFIG_HPP_
#include "common.hpp"
#include <vector>
typedef struct {
const char* name;
const char* dflt; // default value - optional if NULL, required if "", always set if set
bool multi; // allows multiple occurrences
const char* str; // strs[0], never an empty string
std::vector<const char*> strs; // can be >1 entry if #multi is set
const char* spn_start;
const char* spn;
const char* help;
} config_node_t;
typedef struct {
config_node_t port;
config_node_t server_name;
config_node_t server_pw;
config_node_t oper_pw;
config_node_t channel;
config_node_t oper_channels;
config_node_t nickserv_dir;
config_node_t chroot_user;
config_node_t chroot_dir;
config_node_t ssl;
#ifdef USE_OPENSSL
config_node_t ssl_key;
config_node_t ssl_cert;
#endif
} config_t;
extern config_t config;
bool parse_config(const char*);
void log_usage();
void free_config();
#endif