From 83fc6715e7e57571e4bd2760bffa86899f6230f9 Mon Sep 17 00:00:00 2001 From: Guillaume Valadon Date: Fri, 22 Dec 2017 16:27:44 +0100 Subject: [PATCH] Throw an exception when tcpreplay can not be executed --- scapy/sendrecv.py | 5 ++++- test/regression.uts | 12 ++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/scapy/sendrecv.py b/scapy/sendrecv.py index b025e0da7..d0265fa65 100644 --- a/scapy/sendrecv.py +++ b/scapy/sendrecv.py @@ -338,7 +338,10 @@ def sendpfast(x, pps=None, mbps=None, realtime=None, loop=0, file_cache=False, i except KeyboardInterrupt: log_interactive.info("Interrupted by user") except Exception as e: - log_interactive.error("while trying to exec [%s]: %s", argv[0], e) + if conf.interactive: + log_interactive.error("Cannot execute [%s]", argv[0], exc_info=True) + else: + raise finally: os.unlink(f) diff --git a/test/regression.uts b/test/regression.uts index 37040f2fc..90178fc13 100644 --- a/test/regression.uts +++ b/test/regression.uts @@ -995,6 +995,18 @@ for i in six.moves.range(5): assert (len(ret) == 2) assert all(x[1] == 15169 for x in ret) += sendpfast + +old_interactive = conf.interactive +conf.interactive = False +try: + sendpfast([]) + assert False +except Exception: + assert True + +conf.interactive = old_interactive +assert True ############ ############