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

Class PacketLenField

scapy/fields.py:1592–1619  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1590
1591
1592class PacketLenField(_PacketFieldSingle[Optional[BasePacket]]):
1593 __slots__ = ["length_from"]
1594
1595 def __init__(self,
1596 name, # type: str
1597 default, # type: Packet
1598 cls, # type: Union[Callable[[bytes], Packet], Type[Packet]] # noqa: E501
1599 length_from=None # type: Optional[Callable[[Packet], int]] # noqa: E501
1600 ):
1601 # type: (...) -> None
1602 super(PacketLenField, self).__init__(name, default, cls)
1603 self.length_from = length_from or (lambda x: 0)
1604
1605 def getfield(self,
1606 pkt, # type: Packet
1607 s, # type: bytes
1608 ):
1609 # type: (...) -> Tuple[bytes, Optional[BasePacket]]
1610 len_pkt = self.length_from(pkt)
1611 i = None
1612 if len_pkt:
1613 try:
1614 i = self.m2i(pkt, s[:len_pkt])
1615 except Exception:
1616 if conf.debug_dissector:
1617 raise
1618 i = conf.raw_layer(load=s[:len_pkt])
1619 return s[len_pkt:], i
1620
1621
1622class PacketListField(_PacketField[List[BasePacket]]):

Callers 15

OpcDaRequestClass · 0.90
ICMPv6NDOptCGAClass · 0.90
IKEv2_ProposalClass · 0.90
IKEv2_SAClass · 0.90
IKEv2_CERTClass · 0.90
CRX1NewClass · 0.90
OFPTFPTExperimenterClass · 0.90
TPM2B_PUBLICClass · 0.90
TPM2B_SENSITIVEClass · 0.90
TPM2B_PRIVATEClass · 0.90
TPM2B_CREATION_DATAClass · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected