]> git.ipfire.org Git - people/ms/network.git/blobdiff - src/hooks/ports/ethernet
hotplug: Remove multiple copies of the same function
[people/ms/network.git] / src / hooks / ports / ethernet
index 0d9c5cd62165ef8d6d40dfcf96a49e576efd712e..82664fa15376198d712e1fed7267d0025a2d21be 100644 (file)
 
 . /usr/lib/network/header-port
 
-# DEVICE equals the actual MAC address of the device.
-# If ADDRESS is set, the device will get ADDRESS set for its MAC address.
-
-HOOK_SETTINGS="ADDRESS ADVERTISED_LINK_SPEEDS DEVICE OFFLOADING MTU"
+HOOK_SETTINGS=(
+       "ADDRESS"
+       "ADVERTISED_LINK_SPEEDS"
+       "DEVICE"
+       "OFFLOADING"
+       "MTU"
+)
 
 hook_check_settings() {
        assert ismac DEVICE
@@ -114,7 +117,7 @@ hook_new() {
 
        local DEVICE="$(device_get_address "${device}")"
 
-       if ! port_settings_write "${port}" ${HOOK_SETTINGS}; then
+       if ! port_settings_write "${port}"; then
                log ERROR "Could not write settings for port ${port}"
                return ${EXIT_ERROR}
        fi
@@ -129,8 +132,8 @@ hook_create() {
 hook_up() {
        local port="${1}"
 
-       local ${HOOK_SETTINGS}
-       if ! port_settings_read "${port}" ${HOOK_SETTINGS}; then
+       local ${HOOK_SETTINGS[*]}
+       if ! port_settings_read "${port}"; then
                log ERROR "Could not read settings for port ${port}"
                return ${EXIT_ERROR}
        fi
@@ -170,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}" ${HOOK_SETTINGS}
-
-       # 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 "$@"
 }