summaryrefslogtreecommitdiff
path: root/other/bootstrap_daemon/tox_bootstrap_daemon.c
diff options
context:
space:
mode:
Diffstat (limited to 'other/bootstrap_daemon/tox_bootstrap_daemon.c')
-rw-r--r--other/bootstrap_daemon/tox_bootstrap_daemon.c45
1 files changed, 37 insertions, 8 deletions
diff --git a/other/bootstrap_daemon/tox_bootstrap_daemon.c b/other/bootstrap_daemon/tox_bootstrap_daemon.c
index afe2b2ac..66271288 100644
--- a/other/bootstrap_daemon/tox_bootstrap_daemon.c
+++ b/other/bootstrap_daemon/tox_bootstrap_daemon.c
@@ -58,14 +58,16 @@
58#define SLEEP_TIME_MILLISECONDS 30 58#define SLEEP_TIME_MILLISECONDS 30
59#define sleep usleep(1000*SLEEP_TIME_MILLISECONDS) 59#define sleep usleep(1000*SLEEP_TIME_MILLISECONDS)
60 60
61#define DEFAULT_PID_FILE_PATH ".tox_bootstrap_daemon.pid" 61#define DEFAULT_PID_FILE_PATH ".tox_bootstrap_daemon.pid"
62#define DEFAULT_KEYS_FILE_PATH ".tox_bootstrap_daemon.keys" 62#define DEFAULT_KEYS_FILE_PATH ".tox_bootstrap_daemon.keys"
63#define DEFAULT_PORT 33445 63#define DEFAULT_PORT 33445
64#define DEFAULT_ENABLE_IPV6 0 // 1 - true, 0 - false 64#define DEFAULT_ENABLE_IPV6 0 // 1 - true, 0 - false
65#define DEFAULT_ENABLE_LAN_DISCOVERY 1 // 1 - true, 0 - false 65#define DEFAULT_ENABLE_LAN_DISCOVERY 1 // 1 - true, 0 - false
66#define DEFAULT_ENABLE_TCP_RELAY 1 // 1 - true, 0 - false 66#define DEFAULT_ENABLE_TCP_RELAY 1 // 1 - true, 0 - false
67#define DEFAULT_ENABLE_MOTD 1 // 1 - true, 0 - false 67#define DEFAULT_TCP_RELAY_PORTS 443, 3389, 33445 // comma-separated list of ports. make sure to adjust DEFAULT_TCP_RELAY_PORTS_COUNT accordingly
68#define DEFAULT_MOTD DAEMON_NAME 68#define DEFAULT_TCP_RELAY_PORTS_COUNT 3
69#define DEFAULT_ENABLE_MOTD 1 // 1 - true, 0 - false
70#define DEFAULT_MOTD DAEMON_NAME
69 71
70#define MIN_ALLOWED_PORT 1 72#define MIN_ALLOWED_PORT 1
71#define MAX_ALLOWED_PORT 65535 73#define MAX_ALLOWED_PORT 65535
@@ -129,6 +131,33 @@ void parse_tcp_relay_ports_config(config_t *cfg, uint16_t **tcp_relay_ports, int
129 131
130 if (ports_array == NULL) { 132 if (ports_array == NULL) {
131 syslog(LOG_WARNING, "No '%s' setting in the configuration file.\n", NAME_TCP_RELAY_PORTS); 133 syslog(LOG_WARNING, "No '%s' setting in the configuration file.\n", NAME_TCP_RELAY_PORTS);
134 syslog(LOG_WARNING, "Using default '%s':\n", NAME_TCP_RELAY_PORTS);
135
136 uint16_t default_ports[DEFAULT_TCP_RELAY_PORTS_COUNT] = {DEFAULT_TCP_RELAY_PORTS};
137
138 int i;
139
140 for (i = 0; i < DEFAULT_TCP_RELAY_PORTS_COUNT; i ++) {
141 syslog(LOG_WARNING, "Port #%d: %u\n", i, default_ports[i]);
142 }
143
144 // similar procedure to the one of reading config file below
145 *tcp_relay_ports = malloc(DEFAULT_TCP_RELAY_PORTS_COUNT * sizeof(uint16_t));
146
147 for (i = 0; i < DEFAULT_TCP_RELAY_PORTS_COUNT; i ++) {
148
149 (*tcp_relay_ports)[*tcp_relay_port_count] = default_ports[i];
150 if ((*tcp_relay_ports)[*tcp_relay_port_count] < MIN_ALLOWED_PORT || (*tcp_relay_ports)[*tcp_relay_port_count] > MAX_ALLOWED_PORT) {
151 syslog(LOG_WARNING, "Port #%d: Invalid port: %u, should be in [%d, %d]. Skipping.\n", i, (*tcp_relay_ports)[*tcp_relay_port_count], MIN_ALLOWED_PORT, MAX_ALLOWED_PORT);
152 continue;
153 }
154
155 (*tcp_relay_port_count) ++;
156 }
157
158 // the loop above skips invalid ports, so we adjust the allocated memory size
159 *tcp_relay_ports = realloc(*tcp_relay_ports, (*tcp_relay_port_count) * sizeof(uint16_t));
160
132 return; 161 return;
133 } 162 }
134 163