diff --git a/scapy/utils.py b/scapy/utils.py index c3febf59e2bb97d9f1d61172b8e900cab20c17c8..59a5403c371544c1bcd5b0b79ce74973e966e3d4 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()