Home | History | Annotate | Download | only in ap_lib
      1 #   Copyright 2017 - The Android Open Source Project
      2 #
      3 #   Licensed under the Apache License, Version 2.0 (the "License");
      4 #   you may not use this file except in compliance with the License.
      5 #   You may obtain a copy of the License at
      6 #
      7 #       http://www.apache.org/licenses/LICENSE-2.0
      8 #
      9 #   Unless required by applicable law or agreed to in writing, software
     10 #   distributed under the License is distributed on an "AS IS" BASIS,
     11 #   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     12 #   See the License for the specific language governing permissions and
     13 #   limitations under the License.
     14 
     15 import collections
     16 
     17 
     18 class BssSettings(object):
     19     """Settings for a bss.
     20 
     21     Settings for a bss to allow multiple network on a single device.
     22 
     23     Attributes:
     24         name: string, The name that this bss will go by.
     25         ssid: string, The name of the ssid to brodcast.
     26         hidden: bool, If true then the ssid will be hidden.
     27         security: Security, The security settings to use.
     28     """
     29 
     30     def __init__(self, name, ssid, hidden=False, security=None, bssid=None):
     31         self.name = name
     32         self.ssid = ssid
     33         self.hidden = hidden
     34         self.security = security
     35         self.bssid = bssid
     36 
     37     def generate_dict(self):
     38         """Returns: A dictionary of bss settings."""
     39         settings = collections.OrderedDict()
     40         settings['bss'] = self.name
     41         if self.bssid:
     42             settings['bssid'] = self.bssid
     43         if self.ssid:
     44             settings['ssid'] = self.ssid
     45             settings['ignore_broadcast_ssid'] = 1 if self.hidden else 0
     46 
     47         if self.security:
     48             security_settings = self.security.generate_dict()
     49             for k, v in security_settings.items():
     50                 settings[k] = v
     51 
     52         return settings
     53