[PATCH v2 2/5] tests: wpasupplicant: allow to use remote wpa_cli

Janusz Dziedzic janusz.dziedzic at gmail.com
Thu May 30 12:19:01 PDT 2024


Signed-off-by: Janusz Dziedzic <janusz.dziedzic at gmail.com>
---
 tests/hwsim/wpasupplicant.py | 31 +++++++++++++++++++++++--------
 1 file changed, 23 insertions(+), 8 deletions(-)

diff --git a/tests/hwsim/wpasupplicant.py b/tests/hwsim/wpasupplicant.py
index 1b3fd0948..9e4b8512a 100644
--- a/tests/hwsim/wpasupplicant.py
+++ b/tests/hwsim/wpasupplicant.py
@@ -13,13 +13,14 @@ import struct
 import wpaspy
 import remotehost
 import subprocess
+from remotectrl import RemoteCtrl
 
 logger = logging.getLogger()
 wpas_ctrl = '/var/run/wpa_supplicant'
 
 class WpaSupplicant:
     def __init__(self, ifname=None, global_iface=None, hostname=None,
-                 port=9877, global_port=9878, monitor=True):
+                 port=9877, global_port=9878, monitor=True, remote_cli=False):
         self.monitor = monitor
         self.hostname = hostname
         self.group_ifname = None
@@ -31,6 +32,7 @@ class WpaSupplicant:
         self.ifname = None
         self.host = remotehost.Host(hostname, ifname)
         self._group_dbg = None
+        self.remote_cli = remote_cli
         if ifname:
             self.set_ifname(ifname, hostname, port)
             res = self.get_driver_status()
@@ -42,10 +44,16 @@ class WpaSupplicant:
         self.global_iface = global_iface
         if global_iface:
             if hostname != None:
-                self.global_ctrl = wpaspy.Ctrl(hostname, global_port)
-                if self.monitor:
-                    self.global_mon = wpaspy.Ctrl(hostname, global_port)
-                self.global_dbg = hostname + "/" + str(global_port) + "/"
+                if remote_cli:
+                    self.global_ctrl = RemoteCtrl(global_iface, global_port, hostname=hostname)
+                    if self.monitor:
+                        self.global_mon = RemoteCtrl(global_iface, global_port, hostname=hostname)
+                        self.global_dbg = hostname + "/global"
+                else:
+                    self.global_ctrl = wpaspy.Ctrl(hostname, global_port)
+                    if self.monitor:
+                        self.global_mon = wpaspy.Ctrl(hostname, global_port)
+                    self.global_dbg = hostname + "/" + str(global_port) + "/"
             else:
                 self.global_ctrl = wpaspy.Ctrl(global_iface)
                 if self.monitor:
@@ -164,9 +172,14 @@ class WpaSupplicant:
         self.remove_ifname()
         self.ifname = ifname
         if hostname != None:
-            self.ctrl = wpaspy.Ctrl(hostname, port)
-            if self.monitor:
-                self.mon = wpaspy.Ctrl(hostname, port)
+            if self.remote_cli:
+                self.ctrl = RemoteCtrl(wpas_ctrl, port, hostname=hostname, ifname=ifname)
+                if self.monitor:
+                    self.mon = RemoteCtrl(wpas_ctrl, port, hostname=hostname, ifname=ifname)
+            else:
+                self.ctrl = wpaspy.Ctrl(hostname, port)
+                if self.monitor:
+                    self.mon = wpaspy.Ctrl(hostname, port)
             self.host = remotehost.Host(hostname, ifname)
             self.dbg = hostname + "/" + ifname
         else:
@@ -185,6 +198,8 @@ class WpaSupplicant:
     def get_ctrl_iface_port(self, ifname):
         if self.hostname is None:
             return None
+        if self.remote_cli:
+            return None
 
         res = self.global_request("INTERFACES ctrl")
         lines = res.splitlines()
-- 
2.25.1




More information about the Hostap mailing list