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