diff --git a/scapy/packet.py b/scapy/packet.py index 6c2094f27b2000de5923ffe0ec19e351f79de8da..01dac646ab1744c78b5bc9d87c511537b759e4b0 100644 --- a/scapy/packet.py +++ b/scapy/packet.py @@ -634,10 +634,10 @@ Creates an EPS file describing a packet. If filename is not provided a temporary pkt.underlayer = self.underlayer pkt.overload_fields = self.overload_fields.copy() pkt.post_transforms = self.post_transforms + pkt.raw_packet_cache = self.raw_packet_cache if payload is not None: pkt.add_payload(payload) return pkt - def __iter__(self): def loop(todo, done, self=self): @@ -666,7 +666,7 @@ Creates an EPS file describing a packet. If filename is not provided a temporary pkt = self.clone_with(payload=payl, **done2) yield pkt - if self.explicit: + if self.explicit or self.raw_packet_cache is not None: todo = [] done = self.fields else: diff --git a/scapy/utils.py b/scapy/utils.py index c5ac2520724de2e893b4cc656e71ec463c9d45aa..07b00ab4e877f86c1693e3de390af24632300510 100644 --- a/scapy/utils.py +++ b/scapy/utils.py @@ -646,8 +646,9 @@ class RawPcapWriter: def write(self, pkt): - """accepts a either a single packet or a list of packets - to be written to the dumpfile + """accepts either a single packet or a list of packets to be + written to the dumpfile + """ if not self.header_present: self._write_header(pkt) @@ -700,7 +701,7 @@ class PcapWriter(RawPcapWriter): self.linktype = 1 RawPcapWriter._write_header(self, pkt) - def _write_packet(self, packet): + def _write_packet(self, packet): sec = int(packet.time) usec = int(round((packet.time-sec)*1000000)) s = str(packet)