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}
+}
+
+# Returns the suggested name of the port
+hook_find_port_name() {
+ assert isset HOOK_PORT_PATTERN
+ port_find_free "${HOOK_PORT_PATTERN}"
+}
+
hook_default_new() {
- local ${HOOK_SETTINGS}
+ local ${HOOK_SETTINGS[*]}
# Import all default variables
hook_set_defaults
return ${EXIT_ERROR}
fi
- assert isset HOOK_PORT_PATTERN
-
- local port=$(port_find_free ${HOOK_PORT_PATTERN})
+ # Determine a name for this port
+ local port="$(hook_find_port_name)"
assert isset port
- port_settings_write "${port}" ${HOOK_SETTINGS}
+ # Save settings
+ if ! port_settings_write "${port}" ${HOOK_SETTINGS[*]}; then
+ return ${EXIT_ERROR}
+ fi
- exit ${EXIT_OK}
+ return ${EXIT_OK}
}
hook_new() {
shift
# Read settings
- if ! port_settings_read "${port}" ${HOOK_SETTINGS}; then
+ if ! port_settings_read "${port}" ${HOOK_SETTINGS[*]}; then
error "Could not read settings for port ${port}"
return ${EXIT_ERROR}
fi
fi
# Save settings
- if ! port_settings_write "${port}" ${HOOK_SETTINGS}; then
+ if ! port_settings_write "${port}" ${HOOK_SETTINGS[*]}; then
error "Could not write settings for port ${port}"
return ${EXIT_ERROR}
fi
hook_children() {
local port="${1}"
- if ! port_settings_read "${port}" ${HOOK_SETTINGS}; then
+ if ! port_settings_read "${port}" ${HOOK_SETTINGS[*]}; then
log ERROR "Could not read port settings: ${port}"
return ${EXIT_OK}
fi