wg-quick: set mtu after addresses

This has all sorts of terrible implications and fixes a problem in a
pretty terrible way. If the interface MTU is less than 1280, IPv6
addresses will fail to be added. Rather than explictly trying to catch
this and do something particular about it -- such as nicely warning the
user that there could be a v6 isolation issue, for example -- we just
set the MTU _after_ we set the addresses, so that in setting the MTU, we
wind up removing the addresses that were just added. This is pretty bad,
but it makes things a bit smoother.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
This commit is contained in:
Jason A. Donenfeld 2017-12-26 20:02:42 +01:00
parent 53752eb21e
commit 2caa06d9fb

View File

@ -492,11 +492,11 @@ static void cmd_up(const char *iface, const char *config, unsigned int mtu, cons
add_if(iface); add_if(iface);
set_config(iface, config); set_config(iface, config);
set_mtu(iface, mtu);
set_addr(iface, addrs); set_addr(iface, addrs);
up_if(&netid, iface); up_if(&netid, iface);
set_dnses(netid, dnses); set_dnses(netid, dnses);
set_routes(iface, netid); set_routes(iface, netid);
set_mtu(iface, mtu);
free(cleanup_iface); free(cleanup_iface);
cleanup_iface = NULL; cleanup_iface = NULL;