mirror of
https://github.com/solemnwarning/ipxwrapper
synced 2024-12-30 16:45:37 +01:00
Implemented config saving functions and added log_level to main_config.
This commit is contained in:
parent
39c6e18b46
commit
7fe8d74f22
45
src/config.c
45
src/config.c
@ -69,6 +69,8 @@ main_config_t get_main_config(void)
|
||||
}
|
||||
|
||||
config.router_port = reg_get_dword(reg, "control_port", config.router_port);
|
||||
|
||||
config.log_level = reg_get_dword(reg, "min_log_level", LOG_INFO);
|
||||
}
|
||||
else if(version == 2)
|
||||
{
|
||||
@ -77,6 +79,8 @@ main_config_t get_main_config(void)
|
||||
config.w95_bug = reg_get_dword(reg, "w95_bug", config.w95_bug);
|
||||
config.bcast_all = reg_get_dword(reg, "bcast_all", config.bcast_all);
|
||||
config.src_filter = reg_get_dword(reg, "src_filter", config.src_filter);
|
||||
|
||||
config.log_level = reg_get_dword(reg, "log_level", LOG_INFO);
|
||||
}
|
||||
|
||||
reg_close(reg);
|
||||
@ -84,6 +88,29 @@ main_config_t get_main_config(void)
|
||||
return config;
|
||||
}
|
||||
|
||||
bool set_main_config(const main_config_t *config)
|
||||
{
|
||||
HKEY reg = reg_open_main(true);
|
||||
|
||||
bool ok = reg_set_dword(reg, "single_iface", config->single_iface)
|
||||
&& reg_set_addr32(reg, "single_netnum", config->single_netnum)
|
||||
&& reg_set_addr48(reg, "single_nodenum", config->single_nodenum)
|
||||
|
||||
&& reg_set_dword(reg, "port", config->udp_port)
|
||||
&& reg_set_dword(reg, "router_port", config->router_port)
|
||||
&& reg_set_dword(reg, "w95_bug", config->w95_bug)
|
||||
&& reg_set_dword(reg, "bcast_all", config->bcast_all)
|
||||
&& reg_set_dword(reg, "src_filter", config->src_filter)
|
||||
|
||||
&& reg_set_dword(reg, "log_level", config->log_level)
|
||||
|
||||
&& reg_set_dword(reg, "version", 2);
|
||||
|
||||
reg_close(reg);
|
||||
|
||||
return ok;
|
||||
}
|
||||
|
||||
iface_config_t get_iface_config(addr48_t hwaddr)
|
||||
{
|
||||
char id[18];
|
||||
@ -134,6 +161,24 @@ iface_config_t get_iface_config(addr48_t hwaddr)
|
||||
return config;
|
||||
}
|
||||
|
||||
bool set_iface_config(addr48_t hwaddr, const iface_config_t *config)
|
||||
{
|
||||
char id[ADDR48_STRING_SIZE];
|
||||
addr48_string(id, hwaddr);
|
||||
|
||||
HKEY reg = reg_open_main(false);
|
||||
HKEY ifreg = reg_open_subkey(reg, id, true);
|
||||
|
||||
bool ok = reg_set_addr32(ifreg, "net", config->netnum)
|
||||
&& reg_set_addr32(ifreg, "node", config->nodenum)
|
||||
&& reg_set_addr32(ifreg, "enabled", config->enabled);
|
||||
|
||||
reg_close(ifreg);
|
||||
reg_close(reg);
|
||||
|
||||
return ok;
|
||||
}
|
||||
|
||||
addr48_t get_primary_iface(void)
|
||||
{
|
||||
addr48_t primary = addr48_in((unsigned char[]){ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF });
|
||||
|
13
src/config.h
13
src/config.h
@ -23,6 +23,10 @@
|
||||
|
||||
#include "common.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct main_config {
|
||||
uint16_t udp_port;
|
||||
uint16_t router_port;
|
||||
@ -31,6 +35,8 @@ typedef struct main_config {
|
||||
bool bcast_all;
|
||||
bool src_filter;
|
||||
|
||||
enum ipx_log_level log_level;
|
||||
|
||||
unsigned int addr_cache_ttl;
|
||||
unsigned int iface_ttl;
|
||||
|
||||
@ -61,8 +67,15 @@ struct v1_iface_config {
|
||||
} __attribute__((__packed__));
|
||||
|
||||
main_config_t get_main_config(void);
|
||||
bool set_main_config(const main_config_t *config);
|
||||
|
||||
iface_config_t get_iface_config(addr48_t hwaddr);
|
||||
bool set_iface_config(addr48_t hwaddr, const iface_config_t *config);
|
||||
|
||||
addr48_t get_primary_iface();
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* !IPX_CONFIG_H */
|
||||
|
@ -82,6 +82,7 @@ BOOL WINAPI DllMain(HINSTANCE me, DWORD why, LPVOID res) {
|
||||
}
|
||||
|
||||
main_config = get_main_config();
|
||||
min_log_level = main_config.log_level;
|
||||
|
||||
addr_cache_init();
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user