tests: Close pyrad server sockets explicitly

This helps in avoiding issues with another test case trying to bind to
the same UDP port and failing due to the previous use by pyrad still
being open. This showed up with failures in radius_ipv6 when it followed
a test case like eap_proto_tls with suitable set of test cases between
them.

Signed-off-by: Jouni Malinen <j@w1.fi>
This commit is contained in:
Jouni Malinen 2019-08-04 23:50:56 +03:00
parent d001fe31ab
commit 752e7a33e8
2 changed files with 12 additions and 0 deletions

View file

@ -145,6 +145,9 @@ def start_radius_server(eap_handler):
else: else:
logger.error("Unexpected event in pyrad server main loop") logger.error("Unexpected event in pyrad server main loop")
for fd in self.authfds + self.acctfds:
fd.close()
srv = TestServer(dict=pyrad.dictionary.Dictionary("dictionary.radius"), srv = TestServer(dict=pyrad.dictionary.Dictionary("dictionary.radius"),
authport=18138, acctport=18139) authport=18138, acctport=18139)
srv.hosts["127.0.0.1"] = pyrad.server.RemoteHost("127.0.0.1", srv.hosts["127.0.0.1"] = pyrad.server.RemoteHost("127.0.0.1",

View file

@ -1079,6 +1079,9 @@ def test_radius_protocol(dev, apdev):
else: else:
logger.error("Unexpected event in pyrad server main loop") logger.error("Unexpected event in pyrad server main loop")
for fd in self.authfds + self.acctfds:
fd.close()
srv = TestServer(dict=pyrad.dictionary.Dictionary("dictionary.radius"), srv = TestServer(dict=pyrad.dictionary.Dictionary("dictionary.radius"),
authport=18138, acctport=18139) authport=18138, acctport=18139)
srv.hosts["127.0.0.1"] = pyrad.server.RemoteHost("127.0.0.1", srv.hosts["127.0.0.1"] = pyrad.server.RemoteHost("127.0.0.1",
@ -1193,6 +1196,9 @@ def start_radius_psk_server(psk, invalid_code=False, acct_interim_interval=0,
else: else:
logger.error("Unexpected event in pyrad server main loop") logger.error("Unexpected event in pyrad server main loop")
for fd in self.authfds + self.acctfds:
fd.close()
srv = TestServer(dict=pyrad.dictionary.Dictionary("dictionary.radius"), srv = TestServer(dict=pyrad.dictionary.Dictionary("dictionary.radius"),
authport=18138, acctport=18139) authport=18138, acctport=18139)
srv.hosts["127.0.0.1"] = pyrad.server.RemoteHost("127.0.0.1", srv.hosts["127.0.0.1"] = pyrad.server.RemoteHost("127.0.0.1",
@ -1471,6 +1477,9 @@ def test_ap_vlan_wpa2_psk_radius_required(dev, apdev):
else: else:
logger.error("Unexpected event in pyrad server main loop") logger.error("Unexpected event in pyrad server main loop")
for fd in self.authfds + self.acctfds:
fd.close()
srv = TestServer(dict=pyrad.dictionary.Dictionary("dictionary.radius"), srv = TestServer(dict=pyrad.dictionary.Dictionary("dictionary.radius"),
authport=18138, acctport=18139) authport=18138, acctport=18139)
srv.hosts["127.0.0.1"] = pyrad.server.RemoteHost("127.0.0.1", srv.hosts["127.0.0.1"] = pyrad.server.RemoteHost("127.0.0.1",