| # Copyright (c) 2013 The Chromium OS Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| description "Set regulatory domain for restrictive domains" |
| author "chromium-os-dev@chromium.org" |
| |
| # We also need to run after cfg80211 is loaded by shill.conf so the "iw" |
| # command will work. |
| start on started shill |
| |
| # The list of regulatory domains which we must apply in order to constrain |
| # the system to a more restrictive behavior than our world regulatory domain. |
| # The system can only be set to one regulatory domain at a time. As well, |
| # any given system should have only one "region" value. However, in order |
| # to hedge against any strange cases, this value should be in decreasing |
| # order of constraints, so the system will attain the most constrained |
| # domain. |
| env constrained_regdomains="ID AR US RU" |
| |
| script |
| for regdomain in $constrained_regdomains ; do |
| if dump_vpd_log --stdout | grep -qi "^\"region\"=\"${regdomain}\"$" ; then |
| # Wait for a wireless LAN interface to appear, since this regdomain |
| # needs to be applied afterwards. |
| wait_tries=0 |
| while [ ${wait_tries} -le 10 ] ; do |
| if iw dev | grep -q Interface; then |
| break |
| fi |
| sleep 1 |
| wait_tries=$((wait_tries + 1)) |
| done |
| iw reg set ${regdomain} |
| break |
| fi |
| done |
| end script |