#endif
#if defined(SOL_TCP) && defined(TCP_NODELAY)
- option = 1;
- setsockopt(c->socket, SOL_TCP, TCP_NODELAY, (void *)&option, sizeof option);
+ int nodelay = 1;
+ setsockopt(c->socket, SOL_TCP, TCP_NODELAY, (void *)&nodelay, sizeof nodelay);
#endif
#if defined(SOL_IP) && defined(IP_TOS) && defined(IPTOS_LOWDELAY)
- option = IPTOS_LOWDELAY;
- setsockopt(c->socket, SOL_IP, IP_TOS, (void *)&option, sizeof option);
+ int lowdelay = IPTOS_LOWDELAY;
+ setsockopt(c->socket, SOL_IP, IP_TOS, (void *)&lowdelay, sizeof lowdelay);
#endif
}
*space = 0;
} else {
// TODO: Only allow Address statements?
- if(!get_config_string(lookup_config(outgoing->config_tree, "Port"), &port))
- port = xstrdup("655");
+ if(!get_config_string(lookup_config(outgoing->config_tree, "Port"), &port)) {
+ logger(DEBUG_CONNECTIONS, LOG_ERR, "No Port known for %s", outgoing->name);
+ retry_outgoing(mesh, outgoing);
+ return false;
+ }
}
outgoing->ai = str2addrinfo(address, port, SOCK_STREAM);
send_id(mesh, c);
}
-static void free_outgoing(meshlink_handle_t *mesh, outgoing_t *outgoing) {
+static void free_outgoing(outgoing_t *outgoing) {
+ meshlink_handle_t *mesh = outgoing->mesh;
+
timeout_del(&mesh->loop, &outgoing->ev);
if(outgoing->ai)
if(!found) {
outgoing_t *outgoing = xzalloc(sizeof *outgoing);
+ outgoing->mesh = mesh;
outgoing->name = name;
list_insert_tail(mesh->outgoings, outgoing);
setup_outgoing_connection(mesh, outgoing);