From 5cdde16a2e03d5ac4b2715dca7d68532a8bbbb6e Mon Sep 17 00:00:00 2001 From: "namitsingal@gmail.com" <namitsingal@gmail.com> Date: Fri, 2 Oct 2015 11:43:49 +0530 Subject: [PATCH] modified send and sendp to return sent packets. --HG-- branch : issue_5122 --- scapy/sendrecv.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/scapy/sendrecv.py b/scapy/sendrecv.py index 837171b6..16574f33 100644 --- a/scapy/sendrecv.py +++ b/scapy/sendrecv.py @@ -218,7 +218,8 @@ def __gen_send(s, x, inter=0, loop=0, count=None, verbose=None, realtime=None, * if count is not None: loop = -count elif not loop: - loop=-1 + loop = -1 + sent_packets = [] try: while loop: dt0 = None @@ -230,8 +231,9 @@ def __gen_send(s, x, inter=0, loop=0, count=None, verbose=None, realtime=None, * if st > 0: time.sleep(st) else: - dt0 = ct-p.time + dt0 = ct-p.time s.send(p) + sent_packets.append(p) n += 1 if verbose: os.write(1,".") @@ -243,12 +245,13 @@ def __gen_send(s, x, inter=0, loop=0, count=None, verbose=None, realtime=None, * s.close() if verbose: print "\nSent %i packets." % n + return sent_packets @conf.commands.register def send(x, inter=0, loop=0, count=None, verbose=None, realtime=None, *args, **kargs): """Send packets at layer 3 send(packets, [inter=0], [loop=0], [verbose=conf.verb]) -> None""" - __gen_send(conf.L3socket(*args, **kargs), x, inter=inter, loop=loop, count=count,verbose=verbose, realtime=realtime) + return __gen_send(conf.L3socket(*args, **kargs), x, inter=inter, loop=loop, count=count,verbose=verbose, realtime=realtime) @conf.commands.register def sendp(x, inter=0, loop=0, iface=None, iface_hint=None, count=None, verbose=None, realtime=None, *args, **kargs): @@ -256,7 +259,7 @@ def sendp(x, inter=0, loop=0, iface=None, iface_hint=None, count=None, verbose=N sendp(packets, [inter=0], [loop=0], [verbose=conf.verb]) -> None""" if iface is None and iface_hint is not None: iface = conf.route.route(iface_hint)[0] - __gen_send(conf.L2socket(iface=iface, *args, **kargs), x, inter=inter, loop=loop, count=count, verbose=verbose, realtime=realtime) + return __gen_send(conf.L2socket(iface=iface, *args, **kargs), x, inter=inter, loop=loop, count=count, verbose=verbose, realtime=realtime) @conf.commands.register def sendpfast(x, pps=None, mbps=None, realtime=None, loop=0, file_cache=False, iface=None): -- GitLab