From: Bruce Richardson Date: Mon, 13 Sep 2021 10:51:36 +0000 (+0100) Subject: usertools: fix handling EOF for telemetry input pipe X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=744e9a87c582d687d5d20b61b7ee0835da421541;p=dpdk.git usertools: fix handling EOF for telemetry input pipe To allow the script to take queries from input pipes e.g. "echo /ethdev/stats,0 | dpdk-telemetry.py", we need to handle the case of EOF correctly without crashing with an exception. Do this by using a try-except block around the input handling. Fixes: 6a2967c112a3 ("usertools: add new telemetry script") Cc: stable@dpdk.org Signed-off-by: Bruce Richardson Acked-by: Ciara Power --- diff --git a/usertools/dpdk-telemetry.py b/usertools/dpdk-telemetry.py index bdc617db18..7ebbb64fce 100755 --- a/usertools/dpdk-telemetry.py +++ b/usertools/dpdk-telemetry.py @@ -69,13 +69,17 @@ def handle_socket(path): CMDS = read_socket(sock, output_buf_len, False)["/"] # interactive prompt - text = input('--> ').strip() - while text != "quit": - if text.startswith('/'): - sock.send(text.encode()) - read_socket(sock, output_buf_len) + try: text = input('--> ').strip() - sock.close() + while text != "quit": + if text.startswith('/'): + sock.send(text.encode()) + read_socket(sock, output_buf_len) + text = input('--> ').strip() + except EOFError: + pass + finally: + sock.close() def readline_complete(text, state):