[2/3] usertools/dpdk_telemetry: fix handling EOF for input pipe
Checks
Commit Message
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 <bruce.richardson@intel.com>
---
usertools/dpdk-telemetry.py | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)
@@ -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):