udphole

Basic UDP wormhole proxy
git clone git://git.finwo.net/app/udphole
Log | Files | Refs | README | LICENSE

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 }