config.c (1031B)
1 #include <stdlib.h> 2 #include <string.h> 3 4 #include "domain/config.h" 5 6 udphole_config_t *domain_cfg = NULL; 7 8 void domain_config_init(void) { 9 if (domain_cfg) { 10 domain_config_free(); 11 } 12 domain_cfg = calloc(1, sizeof(udphole_config_t)); 13 if (domain_cfg) { 14 domain_cfg->port_low = 7000; 15 domain_cfg->port_high = 7999; 16 domain_cfg->port_cur = 7000; 17 } 18 } 19 20 void domain_config_set_ports(int low, int high) { 21 if (!domain_cfg) domain_config_init(); 22 if (!domain_cfg) return; 23 domain_cfg->port_low = low > 0 ? low : 7000; 24 domain_cfg->port_high = high > domain_cfg->port_low ? high : domain_cfg->port_low + 999; 25 domain_cfg->port_cur = domain_cfg->port_low; 26 } 27 28 void domain_config_set_advertise(const char *addr) { 29 if (!domain_cfg) domain_config_init(); 30 if (!domain_cfg) return; 31 free(domain_cfg->advertise_addr); 32 domain_cfg->advertise_addr = addr ? strdup(addr) : NULL; 33 } 34 35 void domain_config_free(void) { 36 if (!domain_cfg) return; 37 free(domain_cfg->advertise_addr); 38 free(domain_cfg); 39 domain_cfg = NULL; 40 }