DBus: Add a method to get ANQP fields
Add a D-Bus method to perform ANQP get requests. The new method is equivalent to the "anqp_get" command available in wpa_cli. Signed-off-by: Damien Dejean <damiendejean@chromium.org>
This commit is contained in:
parent
5eb409c4bc
commit
d71c838519
5 changed files with 175 additions and 0 deletions
|
@ -12,6 +12,7 @@ import time
|
|||
import shutil
|
||||
import struct
|
||||
import sys
|
||||
from test_ap_hs20 import hs20_ap_params
|
||||
|
||||
try:
|
||||
if sys.version_info[0] > 2:
|
||||
|
@ -6267,3 +6268,43 @@ def test_dbus_hs20_terms_and_conditions(dev, apdev):
|
|||
with TestDbusInterworking(bus) as t:
|
||||
if not t.success():
|
||||
raise Exception("Expected signals not seen")
|
||||
|
||||
def test_dbus_anqp_get(dev, apdev):
|
||||
"""D-Bus ANQP get test"""
|
||||
(bus, wpa_obj, path, if_obj) = prepare_dbus(dev[0])
|
||||
iface = dbus.Interface(if_obj, WPAS_DBUS_IFACE)
|
||||
|
||||
bssid = apdev[0]['bssid']
|
||||
params = hs20_ap_params(ssid="test-anqp")
|
||||
params["hessid"] = bssid
|
||||
params['mbo'] = '1'
|
||||
params['mbo_cell_data_conn_pref'] = '1'
|
||||
params['hs20_oper_friendly_name'] = ["eng:Example operator",
|
||||
"fin:Esimerkkioperaattori"]
|
||||
hapd = hostapd.add_ap(apdev[0], params)
|
||||
|
||||
dev[0].scan_for_bss(bssid, freq="2412", force_scan=True)
|
||||
iface.ANQPGet({"addr": bssid,
|
||||
"ids": dbus.Array([257], dbus.Signature("q")),
|
||||
"mbo_ids": dbus.Array([2], dbus.Signature("y")),
|
||||
"hs20_ids": dbus.Array([3, 4], dbus.Signature("y"))})
|
||||
|
||||
ev = dev[0].wait_event(["GAS-QUERY-DONE"], timeout=10)
|
||||
if ev is None:
|
||||
raise Exception("GAS query timed out")
|
||||
|
||||
ev = dev[0].wait_event(["RX-ANQP"], timeout=1)
|
||||
if ev is None or "ANQP Capability list" not in ev:
|
||||
raise Exception("Did not receive Capability list")
|
||||
|
||||
ev = dev[0].wait_event(["RX-HS20-ANQP"], timeout=1)
|
||||
if ev is None or "Operator Friendly Name" not in ev:
|
||||
raise Exception("Did not receive Operator Friendly Name")
|
||||
|
||||
ev = dev[0].wait_event(["RX-MBO-ANQP"], timeout=1)
|
||||
if ev is None or "cell_conn_pref" not in ev:
|
||||
raise Exception("Did not receive MBO Cellular Data Connection Preference")
|
||||
|
||||
bss = dev[0].get_bss(bssid)
|
||||
if 'anqp_capability_list' not in bss:
|
||||
raise Exception("Capability List ANQP-element not seen")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue