<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
#!/bin/sh
# If we are running dhclient, shutdown running instances cleanly and
# bring them back up on resume.

. "${PM_FUNCTIONS}"

PM_DHCLIENT_RUNDIR="${PM_UTILS_RUNDIR}/network"
PM_DHCLIENT_SUSPEND="${PM_DHCLIENT_RUNDIR}/dhclient.suspend"

suspend_dhclient() {
    [ ! -d /etc/sysconfig/network-scripts ] && return
    [ ! -x /sbin/ifdown ] && return

    [ ! -d ${PM_DHCLIENT_RUNDIR} ] && /bin/mkdir -p ${PM_DHCLIENT_RUNDIR}
    [ -f ${PM_DHCLIENT_SUSPEND} ] && /bin/rm -f ${PM_DHCLIENT_SUSPEND}

    cd /etc/sysconfig/network-scripts
    for ifcfg in ifcfg-* ; do
        # Clear relevant parameters set by previous interface
        # (lo doesn't set them)
        NM_CONTROLLED=
        BOOTPROTO=

        . ./"${ifcfg}"

        if [ "${NM_CONTROLLED}" = "no" ] || [ "${NM_CONTROLLED}" = "n" ] || [ "${NM_CONTROLLED}" = "false" ]; then
            if [ "${BOOTPROTO}" = "bootp" ] || [ "${BOOTPROTO}" = "dhcp" ] || [ -z "${BOOTPROTO}" ]; then
                # device is not NetworkManager controlled and uses dhcp,
                # now see if it's actually up at the moment
                /sbin/ip link show ${DEVICE} | /bin/grep -qE "state (UP|UNKNOWN)" >/dev/null 2>&1
                if [ $? -eq 0 ]; then
                    echo "${DEVICE}" >> ${PM_DHCLIENT_SUSPEND}
                    /sbin/ifdown ${DEVICE}
                fi
            fi
        fi
    done
}

resume_dhclient() {
    [ ! -f ${PM_DHCLIENT_SUSPEND} ] && return
    [ ! -x /sbin/ifup ] && return

    cd /etc/sysconfig/network-scripts
    while read device ; do
        /sbin/ifup ${device}
    done < ${PM_DHCLIENT_SUSPEND}

    /bin/rm -f ${PM_DHCLIENT_SUSPEND}
}

case "$1" in
    hibernate|suspend)
        suspend_dhclient
        ;;
    thaw|resume)
        resume_dhclient
        ;;
    *) exit $NA
        ;;
esac
