summaryrefslogtreecommitdiffstats
path: root/core/rootfs
diff options
context:
space:
mode:
authorSimon Rettberg2021-08-11 15:58:09 +0200
committerSimon Rettberg2021-08-11 15:58:09 +0200
commit6995afb6f1b01938e4a3ca0daf375dfe276181d5 (patch)
tree3b8883351554bc4f7f949495c8164a99d0403be5 /core/rootfs
parent[redsocks] Upper- and lowercase proxy env (diff)
downloadmltk-6995afb6f1b01938e4a3ca0daf375dfe276181d5.tar.gz
mltk-6995afb6f1b01938e4a3ca0daf375dfe276181d5.tar.xz
mltk-6995afb6f1b01938e4a3ca0daf375dfe276181d5.zip
Implement blocking network.target and network-online.target
Add two services that will delay reaching the according targets, until conditions we consider reasonable are reached. For network.target that is finishing DHCP for the primary interface, for network-online.target we want to see a default gateway or a proxy server configured. Both have a timeout of about 10 seconds for now; this might be increased later on, if necessary.
Diffstat (limited to 'core/rootfs')
-rw-r--r--core/rootfs/rootfs-stage32/data/etc/systemd/system/early-network-triggers.service13
-rw-r--r--core/rootfs/rootfs-stage32/data/etc/systemd/system/network-dns.target4
-rw-r--r--core/rootfs/rootfs-stage32/data/etc/systemd/system/network-gateway.target4
l---------core/rootfs/rootfs-stage32/data/etc/systemd/system/sysinit.target.wants/early-network-triggers.service1
-rwxr-xr-xcore/rootfs/rootfs-stage32/data/opt/openslx/scripts/systemd-early_network_triggers33
5 files changed, 0 insertions, 55 deletions
diff --git a/core/rootfs/rootfs-stage32/data/etc/systemd/system/early-network-triggers.service b/core/rootfs/rootfs-stage32/data/etc/systemd/system/early-network-triggers.service
deleted file mode 100644
index 2c5d7769..00000000
--- a/core/rootfs/rootfs-stage32/data/etc/systemd/system/early-network-triggers.service
+++ /dev/null
@@ -1,13 +0,0 @@
-# This will trigger network.target etc. at an early point,
-# if network setup happened in stage31 (dhcp...)
-[Unit]
-Description=Trigger network targets early
-DefaultDependencies=no
-Wants=systemd-tmpfiles-setup.service
-Before=sysinit.target
-After=systemd-tmpfiles-setup.service
-
-[Service]
-Type=oneshot
-ExecStart=/opt/openslx/scripts/systemd-early_network_triggers
-RemainAfterExit=yes
diff --git a/core/rootfs/rootfs-stage32/data/etc/systemd/system/network-dns.target b/core/rootfs/rootfs-stage32/data/etc/systemd/system/network-dns.target
deleted file mode 100644
index bc12cd1b..00000000
--- a/core/rootfs/rootfs-stage32/data/etc/systemd/system/network-dns.target
+++ /dev/null
@@ -1,4 +0,0 @@
-[Unit]
-Description=DNS Server available
-ConditionPathExists=/run/network/dns-ready
-
diff --git a/core/rootfs/rootfs-stage32/data/etc/systemd/system/network-gateway.target b/core/rootfs/rootfs-stage32/data/etc/systemd/system/network-gateway.target
deleted file mode 100644
index 770eb697..00000000
--- a/core/rootfs/rootfs-stage32/data/etc/systemd/system/network-gateway.target
+++ /dev/null
@@ -1,4 +0,0 @@
-[Unit]
-Description=Default route configured
-ConditionPathExists=/run/network/gateway-ready
-
diff --git a/core/rootfs/rootfs-stage32/data/etc/systemd/system/sysinit.target.wants/early-network-triggers.service b/core/rootfs/rootfs-stage32/data/etc/systemd/system/sysinit.target.wants/early-network-triggers.service
deleted file mode 120000
index 8aec0a6d..00000000
--- a/core/rootfs/rootfs-stage32/data/etc/systemd/system/sysinit.target.wants/early-network-triggers.service
+++ /dev/null
@@ -1 +0,0 @@
-../early-network-triggers.service \ No newline at end of file
diff --git a/core/rootfs/rootfs-stage32/data/opt/openslx/scripts/systemd-early_network_triggers b/core/rootfs/rootfs-stage32/data/opt/openslx/scripts/systemd-early_network_triggers
deleted file mode 100755
index 64ea853e..00000000
--- a/core/rootfs/rootfs-stage32/data/opt/openslx/scripts/systemd-early_network_triggers
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/bin/ash
-
-# This script will trigger several network targets if
-# applicable at an early point.
-# This happens if dhcp/network setup was successful in stage31
-
-# Main interface
-BRIDGE="br0"
-
-if [ ! -e "/sys/class/net/${BRIDGE}/operstate" -o "x$(cat "/sys/class/net/${BRIDGE}/operstate")" == "xup" ] && [ -e "/opt/openslx/uniontmp/etc/hostname" -o -e "/etc/resolv.conf" ]; then
- echo "Triggering network.target"
- touch "/run/network/network-ready"
- systemctl start network.target &
-fi
-
-if [ -s "/etc/resolv.conf" ] && grep -q "^nameserver" "/etc/resolv.conf"; then
- echo "Triggering network-dns.target"
- touch "/run/network/dns-ready"
- systemctl start network-dns.target &
-fi
-
-if route -n | grep -q -E '^0\.0\.0\.0.*U.*G'; then
- echo "Triggering network-gateway.target"
- touch "/run/network/gateway-ready"
- systemctl start network-gateway.target &
-fi
-
-# In case we have multiple NICs per subnet, don't send arp
-# replies on all NICs
-echo 1 > /proc/sys/net/ipv4/conf/all/arp_filter
-
-exit 0
-