From 9bcd2931d26acaf0075dba4a248b4fb82b00383a Mon Sep 17 00:00:00 2001
From: Phil <phil@secdev.org>
Date: Mon, 11 Feb 2008 11:47:30 +0100
Subject: [PATCH] Explicitely close super-sockets in srp() and sniff()

(G. Valadon, tickets #77 and #78)
---
 scapy.py | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/scapy.py b/scapy.py
index cbed74e5..2ad753f2 100755
--- a/scapy.py
+++ b/scapy.py
@@ -10217,7 +10217,9 @@ iface:    work only on the given interface"""
         kargs["timeout"] = -1
     if iface is None and iface_hint is not None:
         iface = conf.route.route(iface_hint)[0]
-    a,b,c=sndrcv(conf.L2socket(iface=iface, filter=filter, nofilter=nofilter, type=type),x,*args,**kargs)
+    s = conf.L2socket(iface=iface, filter=filter, nofilter=nofilter, type=type)
+    a,b,c=sndrcv(s ,x,*args,**kargs)
+    s.close()
     return a,b
 
 def srp1(*args,**kargs):
@@ -11272,6 +11274,7 @@ L2socket: use the provided L2socket
                     break
         except KeyboardInterrupt:
             break
+    s.close()
     return PacketList(lst,"Sniffed")
 
 
-- 
GitLab