]> git.ipfire.org Git - thirdparty/dracut.git/commitdiff
ifcfg/write-ifcfg.sh: aggregate resolv.conf
authorHarald Hoyer <harald@redhat.com>
Fri, 17 Aug 2018 10:50:29 +0000 (12:50 +0200)
committerHarald Hoyer <harald@hoyer.xyz>
Fri, 17 Aug 2018 13:52:36 +0000 (15:52 +0200)
The old code used /tmp/net.$netif.resolv.conf with $netif being randomly
chosen.

As it is not known which nameserver have which priority, just sort them
and deduplicate.

modules.d/45ifcfg/module-setup.sh
modules.d/45ifcfg/write-ifcfg.sh

index 6791985aa5de9ea6699089a79b8199049a6d3b3e..c89def3e7308947580711fe54c7e08f04c297e22 100755 (executable)
@@ -14,6 +14,7 @@ depends() {
 
 # called by dracut
 install() {
+    inst_binary sort
     inst_hook pre-pivot 85 "$moddir/write-ifcfg.sh"
 }
 
index 25c81be3f510d58f534a13410bd8c257cc94885d..3bf847a539f44e189669699b65a699c6dbc92649 100755 (executable)
@@ -286,7 +286,10 @@ echo "files /etc/sysconfig/network-scripts" >> /run/initramfs/rwtab
 echo "files /var/lib/dhclient" >> /run/initramfs/rwtab
 {
     cp /tmp/net.* /run/initramfs/
-    cp /tmp/net.$netif.resolv.conf /run/initramfs/state/etc/resolv.conf
+    for i in /tmp/net.*.resolv.conf; do
+             [ -f "$i" ] && cat "$i"
+    done | sort -u > /run/initramfs/state/etc/resolv.conf
+    [ -s /run/initramfs/state/etc/resolv.conf ] || rm -f /run/initramfs/state/etc/resolv.conf
     copytree /tmp/ifcfg /run/initramfs/state/etc/sysconfig/network-scripts
     cp /tmp/ifcfg-leases/* /run/initramfs/state/var/lib/dhclient
 } > /dev/null 2>&1