From a6a4f528899b1dab47408733b4a423c66ea40f7a Mon Sep 17 00:00:00 2001 From: Thomas Hindoe Paaboel Andersen Date: Sat, 16 Aug 2014 23:18:32 +0200 Subject: networkctl: use safe_qsort in case no links are present Unlikely to happen but still... --- src/network/networkctl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/network') diff --git a/src/network/networkctl.c b/src/network/networkctl.c index 6253cbf582..2a7a1daf0f 100644 --- a/src/network/networkctl.c +++ b/src/network/networkctl.c @@ -141,7 +141,7 @@ static int decode_and_sort_links(sd_rtnl_message *m, LinkInfo **ret) { c++; } - qsort(links, c, sizeof(LinkInfo), link_info_compare); + qsort_safe(links, c, sizeof(LinkInfo), link_info_compare); *ret = links; links = NULL; -- cgit v1.2.3-54-g00ecf From e0fbf1fcffe014d5af6767b29f9108c2f2444888 Mon Sep 17 00:00:00 2001 From: Tom Gundersen Date: Mon, 18 Aug 2014 12:29:45 +0200 Subject: networkd: warn when ignoring unsupported tuntap options The interface for creating tuntap devices should be ported to rtnl so it would support the same settings as other kinds. In the meantime, the best one can do is to drop in a .link file to set the desired options. --- man/systemd.netdev.xml | 5 ++++- src/network/networkd-netdev-tuntap.c | 27 +++++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) (limited to 'src/network') diff --git a/man/systemd.netdev.xml b/man/systemd.netdev.xml index acd845498c..275ee528a0 100644 --- a/man/systemd.netdev.xml +++ b/man/systemd.netdev.xml @@ -177,7 +177,9 @@ The maximum transmission unit in bytes to set for the device. The usual suffixes K, M, G, are supported and are understood to the base of - 1024. + 1024. This key is not currently suported for + tun or tap devices. + @@ -187,6 +189,7 @@ If none is given, one is generated based on the interface name and the machine-id5. + This key is not currently suported for tun or tap devices. diff --git a/src/network/networkd-netdev-tuntap.c b/src/network/networkd-netdev-tuntap.c index dd3bd96dbb..eef8747210 100644 --- a/src/network/networkd-netdev-tuntap.c +++ b/src/network/networkd-netdev-tuntap.c @@ -172,9 +172,35 @@ static void tuntap_done(NetDev *netdev) { t->group_name = NULL; } +static int tuntap_verify(NetDev *netdev, const char *filename) { + TunTap *t = NULL; + + assert(netdev); + + if (netdev->kind == NETDEV_KIND_TUN) + t = TUN(netdev); + else + t = TAP(netdev); + + assert(t); + + if (netdev->mtu) { + log_warning_netdev(netdev, "MTU configured for %s, ignoring", + netdev_kind_to_string(netdev->kind)); + } + + if (netdev->mac) { + log_warning_netdev(netdev, "MAC configured for %s, ignoring", + netdev_kind_to_string(netdev->kind)); + } + + return 0; +} + const NetDevVTable tun_vtable = { .object_size = sizeof(TunTap), .sections = "Match\0NetDev\0Tun\0", + .config_verify = tuntap_verify, .done = tuntap_done, .create = netdev_create_tuntap, .create_type = NETDEV_CREATE_INDEPENDENT, @@ -183,6 +209,7 @@ const NetDevVTable tun_vtable = { const NetDevVTable tap_vtable = { .object_size = sizeof(TunTap), .sections = "Match\0NetDev\0Tap\0", + .config_verify = tuntap_verify, .done = tuntap_done, .create = netdev_create_tuntap, .create_type = NETDEV_CREATE_INDEPENDENT, -- cgit v1.2.3-54-g00ecf