diff options
Diffstat (limited to 'core/modules/slx-network-configs-targets')
9 files changed, 71 insertions, 0 deletions
diff --git a/core/modules/slx-network-configs-targets/data/etc/sysctl.d/90-openslx.conf b/core/modules/slx-network-configs-targets/data/etc/sysctl.d/90-openslx.conf new file mode 100644 index 00000000..04f988df --- /dev/null +++ b/core/modules/slx-network-configs-targets/data/etc/sysctl.d/90-openslx.conf @@ -0,0 +1,3 @@ +# Make sure ARP replies only go out on the matching interface +net.ipv4.conf.all.arp_filter=1 +net.ipv4.conf.default.arp_filter=1 diff --git a/core/modules/slx-network-configs-targets/data/etc/systemd/system/network-online.target.wants/slx-wait-online.service b/core/modules/slx-network-configs-targets/data/etc/systemd/system/network-online.target.wants/slx-wait-online.service new file mode 120000 index 00000000..8e346eac --- /dev/null +++ b/core/modules/slx-network-configs-targets/data/etc/systemd/system/network-online.target.wants/slx-wait-online.service @@ -0,0 +1 @@ +../slx-wait-online.service
\ No newline at end of file diff --git a/core/modules/slx-network-configs-targets/data/etc/systemd/system/network.target.wants/slx-wait-primary-dhcp.service b/core/modules/slx-network-configs-targets/data/etc/systemd/system/network.target.wants/slx-wait-primary-dhcp.service new file mode 120000 index 00000000..e7f32c14 --- /dev/null +++ b/core/modules/slx-network-configs-targets/data/etc/systemd/system/network.target.wants/slx-wait-primary-dhcp.service @@ -0,0 +1 @@ +../slx-wait-primary-dhcp.service
\ No newline at end of file diff --git a/core/modules/slx-network-configs-targets/data/etc/systemd/system/slx-wait-online.service b/core/modules/slx-network-configs-targets/data/etc/systemd/system/slx-wait-online.service new file mode 100644 index 00000000..7765ebdd --- /dev/null +++ b/core/modules/slx-network-configs-targets/data/etc/systemd/system/slx-wait-online.service @@ -0,0 +1,7 @@ +[Unit] +Description=Wait until we are online, ie. a gateway or proxy is configured +Before=network-online.target + +[Service] +Type=oneshot +ExecStart=/opt/openslx/scripts/systemd-wait_online diff --git a/core/modules/slx-network-configs-targets/data/etc/systemd/system/slx-wait-primary-dhcp.service b/core/modules/slx-network-configs-targets/data/etc/systemd/system/slx-wait-primary-dhcp.service new file mode 100644 index 00000000..68dc13f7 --- /dev/null +++ b/core/modules/slx-network-configs-targets/data/etc/systemd/system/slx-wait-primary-dhcp.service @@ -0,0 +1,7 @@ +[Unit] +Description=Wait until DHCP for the primary NIC has finished +Before=network.target + +[Service] +Type=oneshot +ExecStart=/opt/openslx/scripts/systemd-wait_primary_dhcp diff --git a/core/modules/slx-network-configs-targets/data/opt/openslx/scripts/systemd-wait_online b/core/modules/slx-network-configs-targets/data/opt/openslx/scripts/systemd-wait_online new file mode 100755 index 00000000..aaee9c32 --- /dev/null +++ b/core/modules/slx-network-configs-targets/data/opt/openslx/scripts/systemd-wait_online @@ -0,0 +1,21 @@ +#!/bin/ash + +# Wait until we have a nameserver in resolv.conf +# and we have a gateway configured + +w=0 +while ! grep -q ^nameserver /etc/resolv.conf && [ "$w" -lt 10 ]; do + let w++ + sleep 1 +done + +# We don't consider a missing nameserver fatal, but a missing gateway, if no proxy is set +. /etc/profile +while [ -z "$http_proxy" ] && [ -z "$ALL_PROXY" ] && ! ip route show | grep -q ^default; do + [ "$w" -gt 12 ] && exit 1 # Give up - not online + let w++ + sleep 1 + . /etc/profile +done + +exit 0 diff --git a/core/modules/slx-network-configs-targets/data/opt/openslx/scripts/systemd-wait_primary_dhcp b/core/modules/slx-network-configs-targets/data/opt/openslx/scripts/systemd-wait_primary_dhcp new file mode 100755 index 00000000..3e452549 --- /dev/null +++ b/core/modules/slx-network-configs-targets/data/opt/openslx/scripts/systemd-wait_primary_dhcp @@ -0,0 +1,18 @@ +#!/bin/ash + +flag="/run/network/primary-dhcp.flag" +readonly flag +w=0 + +# Wait a maximum of 10 seconds for the flag file +while ! [ -e "$flag" ] && [ "$w" -lt 10 ]; do + let w++ + sleep 1 +done + +# Then touch it anyways, this will prevent the DHCP +# trigger script from changing the hostname later on +mkdir -p /run/network +touch "$flag" + +exit 0 diff --git a/core/modules/slx-network-configs-targets/module.build b/core/modules/slx-network-configs-targets/module.build new file mode 100644 index 00000000..241bcd5e --- /dev/null +++ b/core/modules/slx-network-configs-targets/module.build @@ -0,0 +1,12 @@ +#!/bin/bash +fetch_source() { + : +} + +build() { + pinfo "Static module, nothing to build." +} + +post_copy() { + : +} diff --git a/core/modules/slx-network-configs-targets/module.conf b/core/modules/slx-network-configs-targets/module.conf new file mode 100644 index 00000000..c01ade29 --- /dev/null +++ b/core/modules/slx-network-configs-targets/module.conf @@ -0,0 +1 @@ +# Nothing |