From 8d15ff5a79a6f7bff4f997b2bf4be365131a680b Mon Sep 17 00:00:00 2001
From: Pierre LALET <pierre.lalet@cea.fr>
Date: Tue, 8 Mar 2016 16:09:32 +0100
Subject: [PATCH] wrpcap() / (Raw)PcapWriter: allow the use of a file-like
 object instead of a filename

---
 scapy/utils.py | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/scapy/utils.py b/scapy/utils.py
index c3febf59..59a5403c 100644
--- a/scapy/utils.py
+++ b/scapy/utils.py
@@ -839,17 +839,23 @@ class RawPcapWriter:
         
         self.linktype = linktype
         self.header_present = 0
-        self.append=append
+        self.append = append
         self.gz = gz
         self.endian = endianness
-        self.filename=filename
-        self.sync=sync
+        self.sync = sync
         bufsz=4096
         if sync:
-            bufsz=0
+            bufsz = 0
+
+        if isinstance(filename, basestring):
+            self.filename = filename
+            self.f = [open,gzip.open][gz](filename,append and "ab" or "wb", gz and 9 or bufsz)
+        else:
+            self.f = filename
+            self.filename = (filename.name
+                             if hasattr(filename, "name") else
+                             "No name")
 
-        self.f = [open,gzip.open][gz](filename,append and "ab" or "wb", gz and 9 or bufsz)
-        
     def fileno(self):
         return self.f.fileno()
 
-- 
GitLab