From e5590b1a247a3c4f1904275ff99721d38f52e85e Mon Sep 17 00:00:00 2001 From: Phil <phil@secdev.org> Date: Tue, 12 Aug 2008 01:03:59 +0200 Subject: [PATCH] Return execution errors in sendpfast() (ticket #120) --- scapy/sendrecv.py | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/scapy/sendrecv.py b/scapy/sendrecv.py index 1d3d3a0e..0a516e18 100644 --- a/scapy/sendrecv.py +++ b/scapy/sendrecv.py @@ -3,7 +3,7 @@ ## Copyright (C) Philippe Biondi <phil@secdev.org> ## This program is published under a GPLv2 license -import cPickle,os,sys,time +import cPickle,os,sys,time,subprocess from select import select from data import * from arch import * @@ -252,27 +252,28 @@ def sendpfast(x, pps=None, mbps=None, realtime=None, loop=0, iface=None): iface: output interface """ if iface is None: iface = conf.iface - options = ["--intf1=%s" % iface ] + argv = [conf.prog.tcpreplay, "--intf1=%s" % iface ] if pps is not None: - options.append("--pps=%i" % pps) + argv.append("--pps=%i" % pps) elif mbps is not None: - options.append("--mbps=%i" % mbps) + argv.append("--mbps=%i" % mbps) elif realtime is not None: - options.append("--multiplier=%i" % realtime) + argv.append("--multiplier=%i" % realtime) else: - options.append("--topspeed") + argv.append("--topspeed") if loop: - options.append("--loop=%i" % loop) + argv.append("--loop=%i" % loop) f = os.tempnam("scapy") - options.append(f) + argv.append(f) wrpcap(f, x) try: - try: - os.spawnlp(os.P_WAIT, conf.prog.tcpreplay, conf.prog.tcpreplay, *options) - except KeyboardInterrupt: - log_interactive.info("Interrupted by user") + subprocess.check_call(argv) + except KeyboardInterrupt: + log_interactive.info("Interrupted by user") + except Exception,e: + log_interactive.error(e) finally: os.unlink(f) -- GitLab