diff options
Diffstat (limited to 'other/bootstrap_daemon/tox_bootstrap_daemon.c')
-rw-r--r-- | other/bootstrap_daemon/tox_bootstrap_daemon.c | 45 |
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 | ||