From: Michael Tremer Date: Sat, 30 Mar 2019 13:58:12 +0000 (+0100) Subject: hotplug: Remove multiple copies of the same function X-Git-Url: http://git.ipfire.org/?p=people%2Fms%2Fnetwork.git;a=commitdiff_plain;h=12f9c8d2550c8fcab536bb8b971caddfa8ee0c80 hotplug: Remove multiple copies of the same function Signed-off-by: Michael Tremer --- diff --git a/src/header-port b/src/header-port index 2d8a8200..d75fdd86 100644 --- a/src/header-port +++ b/src/header-port @@ -42,6 +42,32 @@ hook_hotplug_rename() { exit ${EXIT_FALSE} } +hook_hotplug_rename_by_address() { + local port="${1}" + assert isset port + + local device="${2}" + assert isset device + + # Read in the conifguration file. + if ! port_settings_read "${port}"; then + return ${EXIT_ERROR} + fi + + # Get the current MAC address of the device. + local address="$(device_get_address "${device}")" + assert isset address + + # Check if the address matches with the configuration. + if list_match "${address}" "${ADDRESS}" "${DEVICE}"; then + log DEBUG "Device '${device}' is port '${port}'" + return ${EXIT_OK} + fi + + log DEBUG "Device '${device}' is not port '${port}'" + return ${EXIT_ERROR} +} + hook_default_new() { local ${HOOK_SETTINGS[*]} diff --git a/src/hooks/ports/dummy b/src/hooks/ports/dummy index 387c88b5..36888319 100644 --- a/src/hooks/ports/dummy +++ b/src/hooks/ports/dummy @@ -90,40 +90,6 @@ hook_remove() { dummy_remove "${port}" } -hook_up() { - local port="${1}" - assert isset port - - # Bring up the port. - device_set_up ${port} - - exit ${EXIT_OK} -} - -hook_down() { - local port="${1}" - assert isset port - - # Tear down the port. - device_set_down ${port} - - exit ${EXIT_OK} -} - hook_hotplug_rename() { - local port=${1} - assert isset port - - local device=${2} - assert isset device - - port_settings_read "${port}" - - if [ "${ADDRESS}" = "$(device_get_address ${device})" ]; then - log DEBUG "Device '${device}' equals port '${port}'." - exit ${EXIT_OK} - fi - - log DEBUG "Device '${device}' does not equal port '${port}'." - exit ${EXIT_ERROR} + hook_hotplug_rename_by_address "$@" } diff --git a/src/hooks/ports/ethernet b/src/hooks/ports/ethernet index 5f76e158..82664fa1 100644 --- a/src/hooks/ports/ethernet +++ b/src/hooks/ports/ethernet @@ -173,25 +173,5 @@ hook_remove() { } hook_hotplug_rename() { - local port=${1} - assert isset port - - local device=${2} - assert isset device - - # Read in the conifguration file. - port_settings_read "${port}" - - # Get the current MAC address of the device. - local address=$(device_get_address ${device}) - assert isset address - - # Check if the address matches with the configuration. - if list_match "${address}" ${DEVICE} ${ADDRESS}; then - log DEBUG "Device '${device}' equals port '${port}'." - exit ${EXIT_OK} - fi - - log DEBUG "Device '${device}' does not equal port '${port}'." - exit ${EXIT_ERROR} + hook_hotplug_rename_by_address "$@" } diff --git a/src/hooks/ports/ip-tunnel b/src/hooks/ports/ip-tunnel index fa7193ca..482511ea 100644 --- a/src/hooks/ports/ip-tunnel +++ b/src/hooks/ports/ip-tunnel @@ -146,26 +146,5 @@ hook_remove() { } hook_hotplug_rename() { - local port="${1}" - assert isset port - - local device="${2}" - assert isset device - - local ${HOOK_SETTINGS[*]} - if ! port_settings_read "${port}"; then - log ERROR "Could not read settings for port ${port}" - return ${EXIT_ERROR} - fi - - # Get the current MAC address of the device. - local address="$(device_get_address ${device})" - assert isset address - - # Return OK on match - if [ "${ADDRESS}" = "${address}" ]; then - return ${EXIT_OK} - fi - - return ${EXIT_ERROR} + hook_hotplug_rename_by_address "$@" }