X-Git-Url: http://git.ipfire.org/?p=ipfire-2.x.git;a=blobdiff_plain;f=src%2Finstaller%2Fdracut-module%2F70-dhcpcd.exe;h=660f269410ce135467e5e98c55b73fe67053d35d;hp=4100fc957061a7d8cc89b8554cd0d8043c73e08b;hb=69749af1005aa4a35a63d5daf55f39e4c47554aa;hpb=746e71a6296a6830dffe70c05aae4164c3988c35 diff --git a/src/installer/dracut-module/70-dhcpcd.exe b/src/installer/dracut-module/70-dhcpcd.exe index 4100fc9570..660f269410 100755 --- a/src/installer/dracut-module/70-dhcpcd.exe +++ b/src/installer/dracut-module/70-dhcpcd.exe @@ -12,21 +12,45 @@ # ######################################################################## -dhcpcd_up() -{ - set | grep "^new_" | sed "s|^new_||g" | \ - sed "s|'||g" | \ - sort > /var/ipfire/dhcpc/dhcpcd-$interface.info +LEASE_FILE="/var/ipfire/dhcpc/dhcpcd-${interface}.info" - DNS=`grep "domain_name_servers" /var/ipfire/dhcpc/dhcpcd-$interface.info | cut -d"=" -f2` - DNS1=`echo $DNS | cut -d" " -f1` - DNS2=`echo $DNS | cut -d" " -f2` +export_lease() { + set | grep "^new_" | sed "s|^new_||g" | \ + sed "s|'||g" | sort > ${LEASE_FILE} +} - echo "nameserver $DNS1" > /etc/resolv.conf - echo "nameserver $DNS2" >> /etc/resolv.conf +make_resolvconf() { + local DNS="$(grep 'domain_name_servers' ${LEASE_FILE} | cut -d'=' -f2)" + local DNS1="$(echo ${DNS} | cut -d' ' -f1)" + local DNS2="$(echo ${DNS} | cut -d' ' -f2)" + ( + echo "nameserver ${DNS1}" + echo "nameserver ${DNS2}" + ) > /etc/resolv.conf } -case "$reason" in -BOUND|INFORM|REBIND|REBOOT|RENEW|TIMEOUT|STATIC) dhcpcd_up;; +case "${reason}" in + PREINIT) + # Configure MTU + if [ -n "${new_interface_mtu}" ] && [ ${new_interface_mtu} -gt 576 ]; then + echo "Setting MTU to ${new_interface_mtu}" + ip link set "${interface}" mtu "${new_interface_mtu}" + fi + ;; + + BOUND|INFORM|REBIND|REBOOT|RENEW|TIMEOUT|STATIC) + # Export all information about the newly received lease + # to file + export_lease + + # Create system configuration files + make_resolvconf + ;; + + EXPIRE|FAIL|IPV4LL|NAK|NOCARRIER|RELEASE|STOP) + rm -f "${LEASE_FILE}" + ;; esac + +exit 0