[PATCH 10/12] tests: remote: gen/send cfg files

Janusz Dziedzic <[email protected]>
Newsgroups gmane.linux.drivers.hostap
Message-ID <[email protected]>
Instead of hardcoded bss-*.cfg files
generate them correctly, using correct
bssid. Next send/install them on remote
client.

Signed-off-by: Janusz Dziedzic <[email protected]>
---
 tests/hwsim/hostapd.py      |  5 +++++
 tests/hwsim/hostapd_conf.py | 38 +++++++++++++++++++++++++++++++++++++
 2 files changed, 43 insertions(+)

diff --git a/tests/hwsim/hostapd.py b/tests/hwsim/hostapd.py
index 8f2ce02d4..f8db64326 100644
--- a/tests/hwsim/hostapd.py
+++ b/tests/hwsim/hostapd.py
@@ -13,6 +13,7 @@ import wpaspy
 import remotehost
 import utils
 import subprocess
+import hostapd_conf
 
 logger = logging.getLogger()
 hapd_ctrl = '/var/run/hostapd'
@@ -592,6 +593,8 @@ def add_bss(apdev, ifname, confname, ignore_error=False):
         hostname = None
         port = 8878
     hapd_global = HostapdGlobal(apdev)
+    confname = hostapd_conf.cfg_file(apdev, confname, ifname)
+    hapd_global.send_file(confname, confname)
     hapd_global.add_bss(phy, confname, ignore_error)
     port = hapd_global.get_ctrl_iface_port(ifname)
     hapd = Hostapd(ifname, hostname=hostname, port=port)
@@ -610,6 +613,8 @@ def add_iface(apdev, confname):
         hostname = None
         port = 8878
     hapd_global = HostapdGlobal(apdev)
+    confname = hostapd_conf.cfg_file(apdev, confname, ifname)
+    hapd_global.send_file(confname, confname)
     hapd_global.add_iface(ifname, confname)
     port = hapd_global.get_ctrl_iface_port(ifname)
     hapd = Hostapd(ifname, hostname=hostname, port=port)
diff --git a/tests/hwsim/hostapd_conf.py b/tests/hwsim/hostapd_conf.py
index 2243d1f24..a6bffb1d3 100644
--- a/tests/hwsim/hostapd_conf.py
+++ b/tests/hwsim/hostapd_conf.py
@@ -1,5 +1,6 @@
 import hostapd
 import os
+import re
 
 def acl_file(dev, apdev, conf):
     filename = os.path.join("/tmp", conf)
@@ -32,3 +33,40 @@ def acl_file(dev, apdev, conf):
         return conf
 
     return filename
+
+def bssid_inc(apdev, inc=1):
+    parts = apdev['bssid'].split(':')
+    parts[5] = '%02x' % (int(parts[5], 16) + int(inc))
+    bssid = '%s:%s:%s:%s:%s:%s' % (parts[0], parts[1], parts[2], parts[3], parts[4], parts[5])
+    return bssid
+
+def cfg_file(apdev, conf, ifname=None):
+    # put cfg file in /tmp directory
+    fname = os.path.join("/tmp", conf)
+
+    match = re.search(r'bss-\d+', conf)
+    if match:
+        with open(fname, 'w') as f:
+            idx = ''.join(filter(str.isdigit, conf))
+            if ifname is None:
+                ifname = apdev['ifname']
+                if idx != '1':
+                    ifname = ifname + '-' + idx
+
+            f.write("driver=nl80211\n")
+            f.write("ctrl_interface=/var/run/hostapd\n")
+            f.write("hw_mode=g\n")
+            f.write("channel=1\n")
+            f.write("ieee80211n=1\n")
+            f.write("interface=%s\n" % ifname)
+
+            f.write("ssid=bss-%s\n" % idx)
+            if conf == 'bss-2-dup.conf':
+                bssid = apdev['bssid']
+            else:
+                bssid = bssid_inc(apdev, int(idx) - 1)
+            f.write("bssid=%s\n" % bssid)
+    else:
+        return conf
+
+    return fname
-- 
2.17.1
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.