MCPcopy Index your code
hub / github.com/secdev/scapy / recv

Method recv

scapy/supersocket.py:478–502  ·  view source on GitHub ↗
(self, x=None, **kwargs)

Source from the content-addressed store, hash-verified

476 super(StreamSocket, self).__init__(sock, basecls=basecls)
477
478 def recv(self, x=None, **kwargs):
479 # type: (Optional[int], Any) -> Optional[Packet]
480 if x is None:
481 x = MTU
482 # Block but in PEEK mode
483 data = self.ins.recv(x, socket.MSG_PEEK)
484 if data == b"":
485 raise EOFError
486 x = len(data)
487 pkt = self.rcvcls(self._buf + data, self.metadata, self.streamsession)
488 if pkt is None: # Incomplete packet.
489 self._buf += self.ins.recv(x)
490 return self.recv(x)
491 self.metadata.clear()
492 # Strip any madding
493 pad = pkt.getlayer(conf.padding_layer)
494 if pad is not None and pad.underlayer is not None:
495 del pad.underlayer.payload
496 while pad is not None and not isinstance(pad, NoPayload):
497 x -= len(pad.load)
498 pad = pad.payload
499 # Only receive the packet length
500 self.ins.recv(x)
501 self._buf = b""
502 return pkt
503
504
505class StreamSocketPeekless(StreamSocket):

Callers

nothing calls this directly

Calls 3

recvMethod · 0.45
clearMethod · 0.45
getlayerMethod · 0.45

Tested by

no test coverage detected