osmo_trap2cgi.py: Don't recurse in ctrl_client()

Use a loop instead. Without it the script will eventually crash with a
RecursionError.

   File "/usr/bin/osmo_trap2cgi.py", line 211, in conn_client
     await ctrl_client(proxy, reader, writer)
   File "/usr/bin/osmo_trap2cgi.py", line 202, in ctrl_client
     proxy.dispatch(wr, data)
[...]
   File "/usr/bin/osmo_trap2cgi.py", line 202, in ctrl_client
     proxy.dispatch(wr, data)
   File "/usr/bin/osmo_trap2cgi.py", line 201, in ctrl_client
[...]
RecursionError: maximum recursion depth exceeded in comparison

Change-Id: Ic909e371771f3056cb87e18793fd4225ffb90a2c
Related: SYS#4399
This commit is contained in:
Daniel Willmann 2019-06-19 17:16:17 +02:00
parent f52d4a63d9
commit 5869a38cd5
1 changed files with 5 additions and 5 deletions

View File

@ -194,12 +194,12 @@ async def recon_reader(proxy, reader, num_bytes):
async def ctrl_client(proxy, rd, wr):
"""
Recursively read CTRL stream and handle selected messages.
Read CTRL stream and handle selected messages.
"""
header = await recon_reader(proxy, rd, 4)
data = await recon_reader(proxy, rd, get_ctrl_len(proxy, header))
proxy.dispatch(wr, data)
await ctrl_client(proxy, rd, wr)
while True:
header = await recon_reader(proxy, rd, 4)
data = await recon_reader(proxy, rd, get_ctrl_len(proxy, header))
proxy.dispatch(wr, data)
async def conn_client(proxy):
"""