</listitem>
</varlistentry>
- <varlistentry>
- <term>
- <option>--country-code=<replaceable>CODE</replaceable></option>
- </term>
-
- <listitem>
- <para>
- Sets the country code for the wireless interface.
- </para>
- </listitem>
- </varlistentry>
-
<varlistentry>
<term>
<option>--phy=<replaceable>PHY</replaceable></option>
local broadcast_ssid
local channel
- local country_code
+ local country_code="$(wireless_get_reg_domain)"
local encryption
local ieee80211d="1"
local key
--channel=*)
channel=$(cli_get_val ${1})
;;
- --country-code=*)
- country_code=$(cli_get_val ${1})
- ;;
--encryption=*)
encryption=$(cli_get_val ${1})
;;
assert isset channel
assert isinteger channel
- assert isset country_code
assert isset mode
assert isset ssid
function phy_get() {
local info=${1}
-
local phy
if listmatch ${info} $(phy_list); then
done
fi
+ log DEBUG "Searching for phy = ${info}, found ${phy:-none}"
+
if [ -z "${phy}" ]; then
return ${EXIT_ERROR}
fi
# #
###############################################################################
+# Sets the global wireless country code. Default is 00 = world.
+WIRELESS_REGULATORY_DOMAIN="00"
+NETWORK_CONFIG_FILE_PARAMS="${NETWORK_CONFIG_FILE_PARAMS} WIRELESS_REGULATORY_DOMAIN"
+
+init_register wireless_init_reg_domain
+
function wireless_create() {
local device=${1}
assert isset device
return ${ret}
}
+function wireless_get_reg_domain() {
+ # Returns the country code for the wireless device.
+ # Defaults to 00 = world if unset.
+ print "${WIRELESS_REGULATORY_DOMAIN:-00}"
+}
+
+function wireless_init_reg_domain() {
+ local country_code="$(wireless_get_reg_domain)"
+
+ wireless_set_reg_domain "${country_code}"
+}
+
+function wireless_set_reg_domain() {
+ local country_code="${1}"
+ assert isset country_code
+
+ # Before the wireless reg domain is set, it helps to reset to 00 first.
+ iw reg set 00 &>/dev/null
+
+ log INFO "Setting wireless regulatory domain country to '${country_code}'"
+ iw reg set "${country_code}"
+}
+
function wireless_channel_to_frequency() {
# http://en.wikipedia.org/wiki/List_of_WLAN_channels
shift 2
- local ap_scan=1 country_code mode key ssid
+ local ap_scan=1 mode key ssid
local arg
for arg in "$@"; do
--ap-scan=*)
ap_scan=$(cli_get_val ${arg})
;;
- --country-code=*)
- country_code=$(cli_get_val ${arg})
- ;;
--mode=*)
mode=$(cli_get_val ${arg})
assert isset mode
local auth_alg key_mgmt proto ssid psk wep_key0 wep_tx_keyidx
+ local country_code="$(wireless_get_reg_domain)"
case "${mode}" in
# Normal WPA.
hostapd_config_write ${port} ${config_file} \
--broadcast-ssid="${BROADCAST_SSID}" \
--channel="${CHANNEL}" \
- --country-code="${COUNTRY_CODE}" \
--encryption="${ENCRYPTION}" \
--key="${KEY}" \
--mode="${MODE}" \
. /usr/lib/network/header-port
-HOOK_SETTINGS="HOOK ADDRESS MESH_ID SSID CHANNEL COUNTRY_CODE PHY"
+HOOK_SETTINGS="HOOK ADDRESS MESH_ID SSID CHANNEL PHY"
ADDRESS=$(mac_generate)
CHANNEL=1
-COUNTRY_CODE="US"
MESH_ID=
SSID=
assert isset ADDRESS
assert ismac ADDRESS
assert isset CHANNEL
- assert isset COUNTRY_CODE
assert isset MESH_ID
assert ismac MESH_ID
assert isset PHY
--channel=*)
CHANNEL=$(cli_get_val ${1})
;;
- --country-code=*)
- COUNTRY_CODE=$(cli_get_val ${1})
- ;;
--phy=*)
PHY=$(cli_get_val ${1})
;;
--channel=*)
CHANNEL=$(cli_get_val ${1})
;;
- --country-code=*)
- COUNTRY_CODE=$(cli_get_val ${1})
- ;;
--mesh-id=*)
MESH_ID=$(cli_get_val ${1})
;;
. /usr/lib/network/header-port
-HOOK_SETTINGS="HOOK ADDRESS BROADCAST_SSID CHANNEL COUNTRY_CODE MODE PHY SSID"
+HOOK_SETTINGS="HOOK ADDRESS BROADCAST_SSID CHANNEL MODE PHY SSID"
HOOK_SETTINGS="${HOOK_SETTINGS} ENCRYPTION KEY"
ADDRESS=$(mac_generate)
BROADCAST_SSID=on
CHANNEL=1
-COUNTRY_CODE="US"
ENCRYPTION=""
KEY=""
MODE="g"
assert isset BROADCAST_SSID
assert isbool BROADCAST_SSID
assert isset CHANNEL
- assert isset COUNTRY_CODE
assert isset MODE
assert isoneof MODE a b g n
assert isset PHY
--channel=*)
CHANNEL=$(cli_get_val ${1})
;;
- --country-code=*)
- COUNTRY_CODE=$(cli_get_val ${1})
- ;;
--encryption=*)
ENCRYPTION=$(cli_get_val ${1})
;;
--channel=*)
CHANNEL=$(cli_get_val ${1})
;;
- --country-code=*)
- COUNTRY_CODE=$(cli_get_val ${1})
- ;;
--encryption=*)
ENCRYPTION=$(cli_get_val ${1})
;;
. /usr/lib/network/header-zone
-HOOK_SETTINGS="HOOK ADDRESS MESH_ID SSID CHANNEL COUNTRY_CODE PHY"
+HOOK_SETTINGS="HOOK ADDRESS MESH_ID SSID CHANNEL PHY"
# Default values
ADDRESS=$(mac_generate)
CHANNEL=1
-COUNTRY_CODE="US"
MESH_ID=
SSID=
assert isset ADDRESS
assert ismac ADDRESS
assert isset CHANNEL
- assert isset COUNTRY_CODE
assert isset MESH_ID
assert ismac MESH_ID
assert isset PHY
--channel=*)
CHANNEL="$(cli_get_val ${1})"
;;
- --country-code=*)
- COUNTRY_CODE="$(cli_get_val ${1})"
- ;;
--mesh-id=*)
MESH_ID="$(cli_get_val ${1})"
;;