X-Git-Url: https://tinc-vpn.org/git/browse?a=blobdiff_plain;f=src%2Fifconfig.c;h=d4f13865a0b686c74351118b13bb8b0c6b42b50b;hb=72091d5c770856870bb8cd51bcc5641078c7562c;hp=4b47ad13f0e112d3833cb97bf09976531f3bc04f;hpb=1c475ecb575367a6b3f9328b0f643ad636155341;p=tinc diff --git a/src/ifconfig.c b/src/ifconfig.c index 4b47ad13..d4f13865 100644 --- a/src/ifconfig.c +++ b/src/ifconfig.c @@ -1,6 +1,6 @@ /* ifconfig.c -- Generate platform specific interface configuration commands - Copyright (C) 2016-2017 Guus Sliepen + Copyright (C) 2016-2018 Guus Sliepen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -25,7 +25,7 @@ static long start; -#ifndef HAVE_MINGW +#ifndef HAVE_WINDOWS void ifconfig_header(FILE *out) { fprintf(out, "#!/bin/sh\n"); start = ftell(out); @@ -71,10 +71,12 @@ void ifconfig_dhcp(FILE *out) { } void ifconfig_dhcp6(FILE *out) { + (void)out; fprintf(stderr, "DHCPv6 requested, but not supported by tinc on this platform\n"); } void ifconfig_slaac(FILE *out) { + (void)out; // It's the default? } @@ -103,6 +105,7 @@ void ifconfig_address(FILE *out, const char *value) { ipv6 = address; break; + case SUBNET_MAC: default: return; } @@ -126,7 +129,7 @@ void ifconfig_address(FILE *out, const char *value) { return; } -#elif defined(HAVE_MINGW) || defined(HAVE_CYGWIN) +#elif defined(HAVE_WINDOWS) switch(address.type) { case SUBNET_MAC: @@ -134,11 +137,11 @@ void ifconfig_address(FILE *out, const char *value) { break; case SUBNET_IPV4: - fprintf(out, "netsh inetface ipv4 set address \"$INTERFACE\" static %s\n", address_str); + fprintf(out, "netsh interface ipv4 set address \"%%INTERFACE%%\" static %s\n", address_str); break; case SUBNET_IPV6: - fprintf(out, "netsh inetface ipv6 set address \"$INTERFACE\" static %s\n", address_str); + fprintf(out, "netsh interface ipv6 set address \"%%INTERFACE%%\" %s\n", address_str); break; default: @@ -199,13 +202,14 @@ void ifconfig_route(FILE *out, const char *value) { if(*gateway_str) { switch(subnet.type) { case SUBNET_IPV4: - fprintf(out, "ip route add %s via %s dev \"$INTERFACE\"\n", subnet_str, gateway_str); + fprintf(out, "ip route add %s via %s dev \"$INTERFACE\" onlink\n", subnet_str, gateway_str); break; case SUBNET_IPV6: - fprintf(out, "ip route add %s via %s dev \"$INTERFACE\"\n", subnet_str, gateway_str); + fprintf(out, "ip route add %s via %s dev \"$INTERFACE\" onlink\n", subnet_str, gateway_str); break; + case SUBNET_MAC: default: return; } @@ -219,36 +223,39 @@ void ifconfig_route(FILE *out, const char *value) { fprintf(out, "ip route add %s dev \"$INTERFACE\"\n", subnet_str); break; + case SUBNET_MAC: default: return; } } -#elif defined(HAVE_MINGW) || defined(HAVE_CYGWIN) +#elif defined(HAVE_WINDOWS) if(*gateway_str) { switch(subnet.type) { case SUBNET_IPV4: - fprintf(out, "netsh inetface ipv4 add route %s \"%%INTERFACE%%\" %s\n", subnet_str, gateway_str); + fprintf(out, "netsh interface ipv4 add route %s \"%%INTERFACE%%\" %s\n", subnet_str, gateway_str); break; case SUBNET_IPV6: - fprintf(out, "netsh inetface ipv6 add route %s \"%%INTERFACE%%\" %s\n", subnet_str, gateway_str); + fprintf(out, "netsh interface ipv6 add route %s \"%%INTERFACE%%\" %s\n", subnet_str, gateway_str); break; + case SUBNET_MAC: default: return; } } else { switch(subnet.type) { case SUBNET_IPV4: - fprintf(out, "netsh inetface ipv4 add route %s \"%%INTERFACE%%\"\n", subnet_str); + fprintf(out, "netsh interface ipv4 add route %s \"%%INTERFACE%%\"\n", subnet_str); break; case SUBNET_IPV6: - fprintf(out, "netsh inetface ipv6 add route %s \"%%INTERFACE%%\"\n", subnet_str); + fprintf(out, "netsh interface ipv6 add route %s \"%%INTERFACE%%\"\n", subnet_str); break; + case SUBNET_MAC: default: return; } @@ -276,6 +283,7 @@ void ifconfig_route(FILE *out, const char *value) { net2str(gateway_str, sizeof(gateway_str), &ipv6); break; + case SUBNET_MAC: default: return; } @@ -296,6 +304,7 @@ void ifconfig_route(FILE *out, const char *value) { fprintf(out, "route add -inet6 %s %s\n", subnet_str, gateway_str); break; + case SUBNET_MAC: default: return; }