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.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)
|
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.w95_bug = reg_get_dword(reg, "w95_bug", config.w95_bug);
|
||||||
config.bcast_all = reg_get_dword(reg, "bcast_all", config.bcast_all);
|
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.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);
|
reg_close(reg);
|
||||||
@ -84,6 +88,29 @@ main_config_t get_main_config(void)
|
|||||||
return config;
|
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)
|
iface_config_t get_iface_config(addr48_t hwaddr)
|
||||||
{
|
{
|
||||||
char id[18];
|
char id[18];
|
||||||
@ -134,6 +161,24 @@ iface_config_t get_iface_config(addr48_t hwaddr)
|
|||||||
return config;
|
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 get_primary_iface(void)
|
||||||
{
|
{
|
||||||
addr48_t primary = addr48_in((unsigned char[]){ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF });
|
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"
|
#include "common.h"
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
typedef struct main_config {
|
typedef struct main_config {
|
||||||
uint16_t udp_port;
|
uint16_t udp_port;
|
||||||
uint16_t router_port;
|
uint16_t router_port;
|
||||||
@ -31,6 +35,8 @@ typedef struct main_config {
|
|||||||
bool bcast_all;
|
bool bcast_all;
|
||||||
bool src_filter;
|
bool src_filter;
|
||||||
|
|
||||||
|
enum ipx_log_level log_level;
|
||||||
|
|
||||||
unsigned int addr_cache_ttl;
|
unsigned int addr_cache_ttl;
|
||||||
unsigned int iface_ttl;
|
unsigned int iface_ttl;
|
||||||
|
|
||||||
@ -61,8 +67,15 @@ struct v1_iface_config {
|
|||||||
} __attribute__((__packed__));
|
} __attribute__((__packed__));
|
||||||
|
|
||||||
main_config_t get_main_config(void);
|
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);
|
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();
|
addr48_t get_primary_iface();
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /* !IPX_CONFIG_H */
|
#endif /* !IPX_CONFIG_H */
|
||||||
|
@ -82,6 +82,7 @@ BOOL WINAPI DllMain(HINSTANCE me, DWORD why, LPVOID res) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
main_config = get_main_config();
|
main_config = get_main_config();
|
||||||
|
min_log_level = main_config.log_level;
|
||||||
|
|
||||||
addr_cache_init();
|
addr_cache_init();
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user