HOOK_PORT_PATTERN="${PORT_PATTERN_ACCESSPOINT}"
HOOK_SETTINGS="ADDRESS BROADCAST_SSID CHANNEL CHANNEL_BANDWIDTH DFS MODE PHY"
-HOOK_SETTINGS="${HOOK_SETTINGS} ENCRYPTION KEY SSID"
+HOOK_SETTINGS="${HOOK_SETTINGS} ENCRYPTION ENVIRONMENT KEY SSID"
ADDRESS=$(mac_generate)
BROADCAST_SSID=on
-CHANNEL=0
+CHANNEL=
CHANNEL_BANDWIDTH=
ENCRYPTION=""
KEY=""
# Perform radar detection by default when possible
DFS="on"
+ENVIRONMENT="${WIRELESS_DEFAULT_ENVIRONMENT}"
+
hook_check_settings() {
assert isset ADDRESS
assert ismac ADDRESS
assert [ ${#KEY} -ge 8 ]
assert [ ${#KEY} -le 63 ]
fi
+
+ assert wireless_environment_is_valid "${ENVIRONMENT}"
}
hook_parse_cmdline() {
--encryption=*)
ENCRYPTION=$(cli_get_val "${1}")
;;
+ --environment=*)
+ ENVIRONMENT="$(cli_get_val "${1}")"
+
+ if ! wireless_environment_is_valid "${ENVIRONMENT}"; then
+ error "Invalid wireless environment: ${ENVIRONMENT}"
+ return ${EXIT_ERROR}
+ fi
+ ;;
--key=*)
KEY=$(cli_get_val "${1}")
;;
return ${EXIT_ERROR}
fi
+ # Automatically enable ACS if no channel is set and ACS is available
+ if ! isset CHANNEL && phy_supports_acs "${PHY}"; then
+ CHANNEL="0"
+
+ log INFO "Automatic Channel Selection (ACS) enabled"
+ fi
+
# Channel bandwidth must match the mode
if isset CHANNEL_BANDWIDTH && ! wireless_channel_bandwidth_is_valid "${MODE}" "${CHANNEL_BANDWIDTH}"; then
- error "Channel Bandwidth '${CHANNEL_BANDWIDTH}' is not supported"
+ error "Channel Bandwidth '${CHANNEL_BANDWIDTH}' is not supported for ${MODE}"
return ${EXIT_ERROR}
fi