X-Git-Url: https://tinc-vpn.org/git/browse?a=blobdiff_plain;f=src%2Fnet_socket.c;h=979e84b93631a19d0e89143d8254be6424cbd540;hb=0b2361a9399944cd57def87226f2be7f92646aa5;hp=c020e8f689a53a44f96bebd758d656c30dce987f;hpb=f6e87ab476a0faf8b124ecaaa27f967d825e6457;p=tinc diff --git a/src/net_socket.c b/src/net_socket.c index c020e8f6..979e84b9 100644 --- a/src/net_socket.c +++ b/src/net_socket.c @@ -70,17 +70,17 @@ static void configure_tcp(connection_t *c) { #endif -#if defined(IPPROTO_TCP) && defined(TCP_NODELAY) +#if defined(TCP_NODELAY) option = 1; setsockopt(c->socket, IPPROTO_TCP, TCP_NODELAY, (void *)&option, sizeof(option)); #endif -#if defined(IPPROTO_IP) && defined(IP_TOS) && defined(IPTOS_LOWDELAY) +#if defined(IP_TOS) && defined(IPTOS_LOWDELAY) option = IPTOS_LOWDELAY; setsockopt(c->socket, IPPROTO_IP, IP_TOS, (void *)&option, sizeof(option)); #endif -#if defined(IPPROTO_IPV6) && defined(IPV6_TCLASS) && defined(IPTOS_LOWDELAY) +#if defined(IPV6_TCLASS) && defined(IPTOS_LOWDELAY) option = IPTOS_LOWDELAY; setsockopt(c->socket, IPPROTO_IPV6, IPV6_TCLASS, (void *)&option, sizeof(option)); #endif @@ -175,12 +175,14 @@ int setup_listen_socket(const sockaddr_t *sa) { option = 1; setsockopt(nfd, SOL_SOCKET, SO_REUSEADDR, (void *)&option, sizeof(option)); -#if defined(IPPROTO_IPV6) && defined(IPV6_V6ONLY) +#if defined(IPV6_V6ONLY) if(sa->sa.sa_family == AF_INET6) { setsockopt(nfd, IPPROTO_IPV6, IPV6_V6ONLY, (void *)&option, sizeof(option)); } +#else +#warning IPV6_V6ONLY not defined #endif if(get_config_string @@ -271,7 +273,7 @@ int setup_vpn_in_socket(const sockaddr_t *sa) { logger(DEBUG_ALWAYS, LOG_WARNING, "Can't set UDP SO_SNDBUF to %i: %s", udp_sndbuf, sockstrerror(sockerrno)); } -#if defined(IPPROTO_IPV6) && defined(IPV6_V6ONLY) +#if defined(IPV6_V6ONLY) if(sa->sa.sa_family == AF_INET6) { setsockopt(nfd, IPPROTO_IPV6, IPV6_V6ONLY, (void *)&option, sizeof(option)); @@ -283,14 +285,14 @@ int setup_vpn_in_socket(const sockaddr_t *sa) { #define IP_DONTFRAGMENT IP_DONTFRAG #endif -#if defined(IPPROTO_IP) && defined(IP_MTU_DISCOVER) && defined(IP_PMTUDISC_DO) +#if defined(IP_MTU_DISCOVER) && defined(IP_PMTUDISC_DO) if(myself->options & OPTION_PMTU_DISCOVERY) { option = IP_PMTUDISC_DO; setsockopt(nfd, IPPROTO_IP, IP_MTU_DISCOVER, (void *)&option, sizeof(option)); } -#elif defined(IPPROTO_IP) && defined(IP_DONTFRAGMENT) +#elif defined(IP_DONTFRAGMENT) if(myself->options & OPTION_PMTU_DISCOVERY) { option = 1; @@ -299,14 +301,14 @@ int setup_vpn_in_socket(const sockaddr_t *sa) { #endif -#if defined(IPPROTO_IPV6) && defined(IPV6_MTU_DISCOVER) && defined(IPV6_PMTUDISC_DO) +#if defined(IPV6_MTU_DISCOVER) && defined(IPV6_PMTUDISC_DO) if(myself->options & OPTION_PMTU_DISCOVERY) { option = IPV6_PMTUDISC_DO; setsockopt(nfd, IPPROTO_IPV6, IPV6_MTU_DISCOVER, (void *)&option, sizeof(option)); } -#elif defined(IPPROTO_IPV6) && defined(IPV6_DONTFRAG) +#elif defined(IPV6_DONTFRAG) if(myself->options & OPTION_PMTU_DISCOVERY) { option = 1; @@ -332,7 +334,7 @@ int setup_vpn_in_socket(const sockaddr_t *sa) { } /* int setup_vpn_in_socket */ static void retry_outgoing_handler(void *data) { - setup_outgoing_connection(data); + setup_outgoing_connection(data, true); } void retry_outgoing(outgoing_t *outgoing) { @@ -586,7 +588,7 @@ begin: #endif if(proxytype != PROXY_EXEC) { -#if defined(IPPROTO_IPV6) && defined(IPV6_V6ONLY) +#if defined(IPV6_V6ONLY) int option = 1; if(c->address.sa.sa_family == AF_INET6) { @@ -678,7 +680,7 @@ static struct addrinfo *get_known_addresses(node_t *n) { return ai; } -void setup_outgoing_connection(outgoing_t *outgoing) { +void setup_outgoing_connection(outgoing_t *outgoing, bool verbose) { timeout_del(&outgoing->ev); node_t *n = lookup_node(outgoing->name); @@ -695,7 +697,7 @@ void setup_outgoing_connection(outgoing_t *outgoing) { } init_configuration(&outgoing->config_tree); - read_host_config(outgoing->config_tree, outgoing->name); + read_host_config(outgoing->config_tree, outgoing->name, verbose); outgoing->cfg = lookup_config(outgoing->config_tree, "Address"); if(!outgoing->cfg) { @@ -704,7 +706,7 @@ void setup_outgoing_connection(outgoing_t *outgoing) { } if(!outgoing->kai) { - logger(DEBUG_ALWAYS, LOG_DEBUG, "No address known for %s", outgoing->name); + logger(verbose ? DEBUG_ALWAYS : DEBUG_CONNECTIONS, LOG_DEBUG, "No address known for %s", outgoing->name); goto remove; } } @@ -920,7 +922,7 @@ void try_outgoing_connections(void) { outgoing_t *outgoing = xzalloc(sizeof(*outgoing)); outgoing->name = name; list_insert_tail(outgoing_list, outgoing); - setup_outgoing_connection(outgoing); + setup_outgoing_connection(outgoing, true); } }