bg_scan_period="0")
hapd.wait_sta()
- buffered_mcast = 0
+ buffered_mcast = False
try:
dev[0].cmd_execute(['iw', 'dev', dev[0].ifname,
'set', 'power_save', 'on'])
"wlan.fc.type_subtype == 0x0008",
["wlan.tim.bmapctl.multicast"])
for line in out.splitlines():
- if line == "True":
- buffered_mcast = 1
- elif line == "False":
- buffered_mcast = 0
- else:
- buffered_mcast = int(line)
- if buffered_mcast == 1:
+ buffered_mcast = parse_bool(line)
+ if buffered_mcast:
break
- if buffered_mcast == 1:
+ if buffered_mcast:
break
finally:
dev[0].cmd_execute(['iw', 'dev', dev[0].ifname,
'set', 'power_save', 'off'])
- if buffered_mcast != 1:
+ if not buffered_mcast:
raise Exception("AP did not buffer multicast frames")
@remote_compatible
logger.info("first frame not observed")
state = 1
for l in lines:
- is_protected = int(l, 16)
- if is_protected != 1:
+ is_protected = parse_bool(l)
+ if not is_protected:
state = 0
if state != 1:
raise Exception("Broadcast packets were not encrypted when no station was connected")
raise Exception("second frame not observed")
state = 1
for l in lines:
- if l == "True":
- is_protected = 1
- elif l == "False":
- is_protected = 0
- else:
- is_protected = int(l, 16)
- if is_protected != 1:
+ is_protected = parse_bool(l)
+ if not is_protected:
state = 0
if state != 1:
raise Exception("Broadcast packets were not encrypted when station was connected")
sysctl_write('net.ipv6.conf.all.disable_ipv6=0')
sysctl_write('net.ipv6.conf.default.disable_ipv6=0')
return cloned_wrapper(wrapper, fn)
+
+def parse_bool(s):
+ # Try parsing as integer of any base (expected 10 or 16),
+ # if that fails, try "True"/"False" literals
+ s = s.strip()
+ try:
+ return bool(int(s, 0))
+ except ValueError as e:
+ if s == 'True':
+ return True
+ elif s == 'False':
+ return False
+ else:
+ raise e