# #
###############################################################################
-function settings_read() {
+settings_read() {
local file="${1}"
assert isset file
shift
# If valid keys is set, key must be in the list.
if [ -n "${valid_keys}" ]; then
- if ! listmatch ${key} ${valid_keys}; then
- if ! enabled ignore_superfluous_settings; then
- log DEBUG "Ignoring configuration setting: ${key}"
- fi
-
- continue
- fi
+ list_match ${key} ${valid_keys} || continue
fi
val=$(cli_get_val ${line})
done < ${file}
}
-function settings_read_array() {
+settings_read_array() {
local file=${1}
assert isset file
shift
# If valid_keys is set, key must be in the list.
if [ -n "${valid_keys}" ]; then
- if ! listmatch ${key} ${valid_keys}; then
+ if ! list_match ${key} ${valid_keys}; then
log DEBUG "Ignoring configuration setting: ${key}"
continue
fi
}
# Strip leading and trailing "s.
-function settings_strip() {
+settings_strip() {
local var="$@"
# Do nothing for strings that contain spaces.
unquote "${var}"
}
-function settings_write() {
+settings_write() {
local settings_file="${1}"
assert isset settings_file
shift
return ${EXIT_ERROR}
fi
- log DEBUG "Writing settings file ${settings_file}."
+ log DEBUG "Writing settings file '${settings_file}'"
mkdir -p $(dirname ${settings_file}) 2>/dev/null
> ${settings_file}
local param
- for param in $(listsort $@); do
+ for param in $(list_sort $@); do
echo "${param}=\"${!param}\"" >> ${settings_file}
done
}
-function settings_remove() {
+settings_remove() {
local settings_file="${1}"
local abspath="$(readlink -e "${settings_file}")"
return ${EXIT_ERROR}
fi
- rm -f "${settings_file}"
+ file_delete "${settings_file}"
}
-function settings_print() {
+settings_print() {
local param
- for param in $(listsort $@); do
+ for param in $(list_sort $@); do
printf "%-32s = %s\n" "${param}" "${!param}"
done
}
-function settings_check() {
+settings_check() {
local check_func="${1}"
# Execute the check function
return ${EXIT_ERROR}
}
-function settings_set() {
+settings_set() {
while [ $# -gt 0 ]; do
case "${1}" in
*=*)
done
}
-function network_settings_read() {
+network_settings_read() {
local options="${NETWORK_SETTINGS_FILE_PARAMS}"
# If the DEBUG variable has already been set,
settings_read "${NETWORK_SETTINGS_FILE}" ${options}
}
-function network_settings_write() {
+network_settings_write() {
settings_write "${NETWORK_SETTINGS_FILE}" ${NETWORK_SETTINGS_FILE_PARAMS}
+}
+
+network_settings_set() {
+ # Process any settings that require immediate actin
+ while [ $# -gt 0 ]; do
+ local arg=${1}
+ shift
+
+ case "${arg}" in
+ *=*)
+ local key=$(cli_get_key ${arg})
+ local val=$(cli_get_val ${arg})
+
+ case "${key}" in
+ DNS_RANDOMIZE|DNS_SEARCH_DOMAIN|DNS_USE_LOCAL_RESOLVER)
+ dns_generate_resolvconf
+ ;;
+
+ WIRELESS_REGULATORY_DOMAIN)
+ if ! wireless_valid_reg_domain "${val}"; then
+ warning "Ignoring invalid wireless regulatory domain: ${val}"
+ continue
+ fi
+
+ if ! wireless_set_reg_domain "${val}"; then
+ error "Error setting wireless regulatory domain: ${val}"
+ fi
+ ;;
+ esac
+ ;;
+ esac
+
+ # Save setting
+ settings_set ${arg}
+ done
- # Update DNS configuration.
- dns_generate_resolvconf
+ return ${EXIT_OK}
}
-function network_settings_print() {
+network_settings_print() {
settings_print ${NETWORK_SETTINGS_FILE_PARAMS}
}
-function network_settings_list() {
+network_settings_list() {
print "${NETWORK_SETTINGS_FILE_PARAMS}"
}
-function firewall_settings_read() {
+firewall_settings_read() {
settings_read "${FIREWALL_SETTINGS_FILE}" "${FIREWALL_SETTINGS_PARAMS}"
}
-function firewall_settings_write() {
+firewall_settings_write() {
settings_write "${FIREWALL_SETTINGS_FILE}" "${FIREWALL_SETTINGS_PARAMS}"
}
-function firewall_settings_print() {
+firewall_settings_print() {
settings_print "${FIREWALL_SETTINGS_PARAMS}"
}