From 4555baae98f8de055690d4d5c57e66b65156037f Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Thu, 5 May 2022 18:33:37 +0200 Subject: Merging upstream version 20220505. Signed-off-by: Daniel Baumann --- libexec/container/start | 38 ++++++++++++++++++++++++++++++++++---- 1 file changed, 34 insertions(+), 4 deletions(-) (limited to 'libexec/container/start') diff --git a/libexec/container/start b/libexec/container/start index da6be24..1b53628 100755 --- a/libexec/container/start +++ b/libexec/container/start @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (C) 2014-2021 Daniel Baumann +# Copyright (C) 2014-2022 Daniel Baumann # # SPDX-License-Identifier: GPL-3.0+ # @@ -191,6 +191,13 @@ case "${HOST_ARCHITECTURE}" in ;; esac +if systemctl status systemd-networkd > /dev/null 2>&1 +then + NETWORK_SUBSYSTEM="systemd-networkd" +else + NETWORK_SUBSYSTEM="ifupdown" +fi + case "${START}" in start) ;; @@ -390,7 +397,22 @@ then if [ -n "${BRIDGE}" ] && [ -n "${INTERFACE}" ] then - mkdir -p /run/systemd/network + case "${NETWORK_SUBSYSTEM}" in + ifupdown) + +cat > "/etc/network/interfaces.d/${INTERFACE}" << EOF +allow-hotplug ${INTERFACE} +iface ${INTERFACE} inet manual + pre-up ip link set ${INTERFACE} up + post-up ip link set ${INTERFACE} master ${BRIDGE} + pre-down ip link set ${INTERFACE} nomaster + post-down ip link set ${INTERFACE} down +EOF + + ;; + + systemd-networkd) + mkdir -p /run/systemd/network cat > "/run/systemd/network/${INTERFACE}.network" << EOF [Match] @@ -398,10 +420,18 @@ Name=${INTERFACE} [Network] Bridge=${BRIDGE} +cat > "/etc/network/interfaces.d/${INTERFACE}" << EOF +allow-hotplug ${INTERFACE} +iface ${INTERFACE} inet manual + pre-up ip link set ${INTERFACE} up + post-up ip link set ${INTERFACE} master ${BRIDGE} + pre-down ip link set ${INTERFACE} nomaster + post-down ip link set ${INTERFACE} down EOF - networkctl reload - + networkctl reload + ;; + esac else echo "Warning bridge definition '${BRIDGE_DEFINITION}' not recognized (expected :): Ignoring" fi -- cgit v1.2.3