# Sets all settings in HOOK_SETTINGS to their DEFAULT_* values
hook_set_defaults() {
local setting
- for setting in ${HOOK_SETTINGS}; do
+ for setting in ${HOOK_SETTINGS[*]}; do
local default="DEFAULT_${setting}"
# Sets the default or empty
# Save the HOOK variable.
local hook="${HOOK}"
- settings_read "$(port_file "${port}")" ${HOOK_SETTINGS}
+ settings_read "$(port_file "${port}")" ${HOOK_SETTINGS[*]}
# Restore hook.
HOOK="${hook}"
if function_exists "hook_check_settings"; then
list_append args "--check=\"hook_check_settings\""
fi
- list_append args HOOK ${HOOK_SETTINGS}
+ list_append args HOOK ${HOOK_SETTINGS[*]}
settings_write "$(port_file "${port}")" ${args}
}
shift
local args
- if [ $# -eq 0 ] && [ -n "${HOOK_SETTINGS}" ]; then
- list_append args ${HOOK_SETTINGS}
+ if [ $# -eq 0 ] && [ -n "${HOOK_SETTINGS[*]}" ]; then
+ list_append args ${HOOK_SETTINGS[*]}
else
list_append args "$@"
fi
if function_exists "hook_check_settings"; then
list_append args "--check=\"hook_check_settings\""
fi
- list_append args ${HOOK_SETTINGS}
+ list_append args HOOK ${HOOK_SETTINGS[*]}
settings_write "${NETWORK_ZONES_DIR}/${zone}/settings" ${args}
}
}
hook_default_new() {
- local ${HOOK_SETTINGS}
+ local ${HOOK_SETTINGS[*]}
# Import all default variables
hook_set_defaults
local port=$(port_find_free ${HOOK_PORT_PATTERN})
assert isset port
- port_settings_write "${port}" ${HOOK_SETTINGS}
+ port_settings_write "${port}" ${HOOK_SETTINGS[*]}
exit ${EXIT_OK}
}
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
assert isset zone
shift
- local ${HOOK_SETTINGS}
+ local ${HOOK_SETTINGS[*]}
# Import all default variables
hook_set_defaults
. /usr/lib/network/header-port
-HOOK_SETTINGS="ADDRESS MIIMON MODE OFFLOADING SLAVES"
+HOOK_SETTINGS=(
+ "ADDRESS"
+ "MIIMON"
+ "MODE"
+ "OFFLOADING"
+ "SLAVES"
+)
DEFAULT_MIIMON=100
DEFAULT_MODE="balance-rr"
assert isset port
# Save configuration
- if port_settings_write "${port}" ${HOOK_SETTINGS}; then
+ if port_settings_write "${port}" ${HOOK_SETTINGS[*]}; then
log INFO "New port ${port} has been created"
else
error "Could not save configuration for ${port}"
# Exit silently if the device already exists
device_exists "${port}" && exit ${EXIT_OK}
- port_settings_read "${port}" ${HOOK_SETTINGS}
+ port_settings_read "${port}" ${HOOK_SETTINGS[*]}
# Create the bonding devices
bonding_create "${port}" \
local port="${1}"
assert isset port
- port_settings_read "${port}" ${HOOK_SETTINGS}
+ port_settings_read "${port}" ${HOOK_SETTINGS[*]}
# Remove the bonding device
if device_exists "${port}"; then
local port="${1}"
assert isset port
- port_settings_read "${port}" ${HOOK_SETTINGS}
+ port_settings_read "${port}" ${HOOK_SETTINGS[*]}
# Auto-enable or disable hardware offloading
if ! isset OFFLOADING || enabled OFFLOADING; then
local port="${1}"
assert isset port
- port_settings_read "${port}" ${HOOK_SETTINGS}
+ port_settings_read "${port}" ${HOOK_SETTINGS[*]}
# Bring down all slaves
local slave
# Handle events of the same interface
if hotplug_event_port_is_interface "${port}"; then
# Read configuration
- port_settings_read "${port}" ${HOOK_SETTINGS}
+ port_settings_read "${port}" ${HOOK_SETTINGS[*]}
# Bring up all slaves
# Attach those which already exist and try to create
. /usr/lib/network/header-port
-HOOK_SETTINGS="ADDRESS"
+HOOK_SETTINGS=(
+ "ADDRESS"
+)
hook_check_settings() {
assert ismac ADDRESS
local port=$(port_find_free ${DUMMY_PORT_PATTERN})
assert isset port
- if port_settings_write "${port}" ${HOOK_SETTINGS}; then
+ if port_settings_write "${port}" ${HOOK_SETTINGS[*]}; then
log INFO "New dummy port '${port}' has been created"
fi
assert isset port
# Read configuration
- port_settings_read "${port}" ${HOOK_SETTINGS}
+ port_settings_read "${port}" ${HOOK_SETTINGS[*]}
# Create the dummy device
dummy_create "${port}" "${ADDRESS}"
local device=${2}
assert isset device
- port_settings_read "${port}" ${HOOK_SETTINGS}
+ port_settings_read "${port}" ${HOOK_SETTINGS[*]}
if [ "${ADDRESS}" = "$(device_get_address ${device})" ]; then
log DEBUG "Device '${device}' equals port '${port}'."
. /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
local DEVICE="$(device_get_address "${device}")"
- if ! port_settings_write "${port}" ${HOOK_SETTINGS}; then
+ if ! port_settings_write "${port}" ${HOOK_SETTINGS[*]}; then
log ERROR "Could not write settings for port ${port}"
return ${EXIT_ERROR}
fi
hook_up() {
local port="${1}"
- local ${HOOK_SETTINGS}
- if ! port_settings_read "${port}" ${HOOK_SETTINGS}; then
+ local ${HOOK_SETTINGS[*]}
+ if ! port_settings_read "${port}" ${HOOK_SETTINGS[*]}; then
log ERROR "Could not read settings for port ${port}"
return ${EXIT_ERROR}
fi
assert isset device
# Read in the conifguration file.
- port_settings_read "${port}" ${HOOK_SETTINGS}
+ port_settings_read "${port}" ${HOOK_SETTINGS[*]}
# Get the current MAC address of the device.
local address=$(device_get_address ${device})
SUPPORTED_IP_TUNNEL_MODES="gretap"
-HOOK_SETTINGS="ADDRESS MARK MODE PEER LOCAL_ADDRESS"
+HOOK_SETTINGS=(
+ "ADDRESS"
+ "MARK"
+ "MODE"
+ "PEER"
+ "LOCAL_ADDRESS"
+)
hook_check_settings() {
assert isset MODE
local port="${1}"
assert isset port
- local ${HOOK_SETTINGS}
- if ! port_settings_read "${port}" ${HOOK_SETTINGS}; then
+ local ${HOOK_SETTINGS[*]}
+ if ! port_settings_read "${port}" ${HOOK_SETTINGS[*]}; then
log ERROR "Could not read settings for port ${port}"
return ${EXIT_ERROR}
fi
local device="${2}"
assert isset device
- local ${HOOK_SETTINGS}
- if ! port_settings_read "${port}" ${HOOK_SETTINGS}; then
+ local ${HOOK_SETTINGS[*]}
+ if ! port_settings_read "${port}" ${HOOK_SETTINGS[*]}; then
log ERROR "Could not read settings for port ${port}"
return ${EXIT_ERROR}
fi
. /usr/lib/network/header-port
-HOOK_SETTINGS="ADDRESS PARENT_DEVICE TAG"
+HOOK_SETTINGS=(
+ "ADDRESS"
+ "PARENT_DEVICE"
+ "TAG"
+)
PORT_PARENTS_VAR="PARENT"
local port="${PARENT_DEVICE}${VLAN_PORT_INTERFIX}${TAG}"
- port_settings_write "${port}" ${HOOK_SETTINGS}
+ port_settings_write "${port}" ${HOOK_SETTINGS[*]}
exit ${EXIT_OK}
}
assert isset port
shift
- port_settings_read "${port}" ${HOOK_SETTINGS}
+ port_settings_read "${port}" ${HOOK_SETTINGS[*]}
while [ $# -gt 0 ]; do
case "${1}" in
shift
done
- port_settings_write "${port}" ${HOOK_SETTINGS}
+ port_settings_write "${port}" ${HOOK_SETTINGS[*]}
exit ${EXIT_OK}
}
device_exists "${port}" && exit ${EXIT_OK}
# Read configruation
- port_settings_read "${port}" ${HOOK_SETTINGS}
+ port_settings_read "${port}" ${HOOK_SETTINGS[*]}
# Create the VLAN device
vlan_create "${port}" "${PARENT_DEVICE}" "${TAG}" "${ADDRESS}"
HOOK_PORT_PATTERN="${PORT_PATTERN_ACCESSPOINT}"
-HOOK_SETTINGS="ADDRESS BROADCAST_SSID CHANNEL CHANNEL_BANDWIDTH DFS MODE PHY"
-HOOK_SETTINGS="${HOOK_SETTINGS} ENCRYPTION ENVIRONMENT KEY SSID"
-HOOK_SETTINGS="${HOOK_SETTINGS} MFP"
+HOOK_SETTINGS=(
+ "ADDRESS"
+ "BROADCAST_SSID"
+ "CHANNEL"
+ "CHANNEL_BANDWIDTH"
+ "DFS"
+ "ENCRYPTION"
+ "ENVIRONMENT"
+ "KEY"
+ "MFP"
+ "MODE"
+ "PHY"
+ "SSID"
+)
# Broadcast SSID by default
DEFAULT_BROADCAST_SSID="on"
device_exists "${port}" && exit ${EXIT_OK}
- port_settings_read "${port}" ${HOOK_SETTINGS}
+ port_settings_read "${port}" ${HOOK_SETTINGS[*]}
# Check if the PHY is present.
local phy=$(phy_get ${PHY})
HOOK_PORT_PATTERN="${PORT_PATTERN_MESH}"
-HOOK_SETTINGS="ADDRESS MESH_ID CHANNEL PHY PSK"
+HOOK_SETTINGS=(
+ "ADDRESS"
+ "CHANNEL"
+ "MESH_ID"
+ "PHY"
+ "PSK"
+)
hook_check_settings() {
assert ismac ADDRESS
assert isset port
# Read settings
- port_settings_read "${port}" ${HOOK_SETTINGS}
+ port_settings_read "${port}" ${HOOK_SETTINGS[*]}
# Check if the PHY is present.
local phy="$(phy_get "${PHY}")"
local port="${1}"
assert isset port
- port_settings_read "${port}" ${HOOK_SETTINGS}
+ port_settings_read "${port}" ${HOOK_SETTINGS[*]}
case "$(hotplug_action)" in
add)
HOOK_MANPAGE="network-zone-bridge"
-HOOK_SETTINGS="HOOK ADDRESS STP STP_FORWARD_DELAY STP_HELLO STP_MAXAGE"
-HOOK_SETTINGS="${HOOK_SETTINGS} STP_PRIORITY MTU"
-
-HOOK_PORT_SETTINGS="COST PRIORITY"
+HOOK_SETTINGS=(
+ "ADDRESS"
+ "STP"
+ "STP_FORWARD_DELAY"
+ "STP_HELLO STP_MAXAGE"
+ "STP_PRIORITY"
+ "MTU"
+)
+
+HOOK_PORT_SETTINGS=(
+ "COST"
+ "PRIORITY"
+)
# Default values
DEFAULT_STP="on"
SUPPORTED_IP_TUNNEL_MODES="gre vti"
-HOOK_SETTINGS="HOOK MARK MODE PEER LOCAL_ADDRESS"
+HOOK_SETTINGS=(
+ "MARK"
+ "MODE"
+ "PEER"
+ "LOCAL_ADDRESS"
+)
# Default mode of the tunnel
DEFAULT_MODE="gre"
# Modems support all authentication methods, that pppd does support.
MODEM_ALLOWED_AUTH_METHODS="${PPP_ALLOWED_AUTH_METHODS}"
-HOOK_SETTINGS="HOOK"
+HOOK_SETTINGS=(
+ "APN"
+ "AUTH"
+ "BAUDRATE"
+ "DEVICE"
+ "MONITOR_DEVICE"
+ "MTU"
+ "USERNAME"
+ "PASSWORD"
+ "PIN"
+ "PHONE_NUMBER"
+ "IMSI"
+)
-# Access Point Name.
-HOOK_SETTINGS="${HOOK_SETTINGS} APN"
-
-# Sets the authentication algortihm that must be used.
-HOOK_SETTINGS="${HOOK_SETTINGS} AUTH"
-
-# Baudrate.
DEFAULT_BAUDRATE=921600
-HOOK_SETTINGS="${HOOK_SETTINGS} BAUDRATE"
-
-# The device name of the serial device.
-# XXX how can we make sure that this does not change all the time?
-HOOK_SETTINGS="${HOOK_SETTINGS} DEVICE"
-
-# A monitor device.
-# Send AT commands to this device, when the primary device is
-# connected.
-HOOK_SETTINGS="${HOOK_SETTINGS} MONITOR_DEVICE"
-
-# Maximum transmission unit.
-HOOK_SETTINGS="${HOOK_SETTINGS} MTU"
-
-# User credentials.
-HOOK_SETTINGS="${HOOK_SETTINGS} USERNAME PASSWORD"
-
-# PIN code.
-HOOK_SETTINGS="${HOOK_SETTINGS} PIN"
-
-# Phone number.
-HOOK_SETTINGS="${HOOK_SETTINGS} PHONE_NUMBER"
-
-# IMSI
-HOOK_SETTINGS="${HOOK_SETTINGS} IMSI"
hook_check_settings() {
assert isset DEVICE
. /usr/lib/network/header-zone
-HOOK_SETTINGS="HOOK ACCESS_CONCENTRATOR AUTH USERNAME PASSWORD"
-HOOK_SETTINGS="${HOOK_SETTINGS} SERVICE_NAME MTU IPV6 PREFIX_DELEGATION"
+HOOK_SETTINGS=(
+ "ACCESS_CONCENTRATOR"
+ "AUTH"
+ "USERNAME"
+ "PASSWORD"
+ "SERVICE_NAME"
+ "MTU"
+ "IPV6"
+ "PREFIX_DELEGATION"
+)
# This hook can work with all authentication methods supported by pppd.
PPPOE_SUPPORTED_AUTH_METHODS="${PPP_SUPPORTED_AUTH_METHODS}"
. /usr/lib/network/header-zone
-HOOK_SETTINGS="HOOK ADDRESS PHY"
+HOOK_SETTINGS=(
+ "ADDRESS"
+ "PHY"
+)
hook_check_settings() {
assert ismac ADDRESS