Skip to content

Commit dde3420

Browse files
committed
working on pcapng protocol impl (added unknown block read/make)
1 parent b52bd7c commit dde3420

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

pcapkit/protocols/misc/pcapng.py

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1028,3 +1028,47 @@ def _decode_next_layer(self, dict_: 'Data_PCAPNG', proto: 'Optional[int]' = None
10281028
self._next = next_ # pylint: disable=attribute-defined-outside-init
10291029
self._protos = chain # pylint: disable=attribute-defined-outside-init
10301030
return dict_
1031+
1032+
def _read_block_unknown(self, schema: 'Schema_UnknownBlock', *,
1033+
header: 'Schema_PCAPNG') -> 'Data_UnknownBlock':
1034+
"""Read unknown PCAP-NG block.
1035+
1036+
Args:
1037+
schema: Parsed block schema.
1038+
header: Parsed PCAP-NG header schema.
1039+
1040+
Returns:
1041+
Parsed packet data.
1042+
1043+
"""
1044+
data = Data_UnknownBlock(
1045+
type=header.type,
1046+
length=schema.length,
1047+
body=schema.body,
1048+
)
1049+
return data
1050+
1051+
def _make_block_unknown(self, block: 'Optional[Data_UnknownBlock]' = None, *,
1052+
data: 'bytes' = b'',
1053+
**kwargs: 'Any') -> 'Schema_UnknownBlock':
1054+
"""Make unknown PCAP-NG block.
1055+
1056+
Args:
1057+
block: Block data model.
1058+
data: Unspecified block data.
1059+
**kwargs: Arbitrary keyword arguments.
1060+
1061+
Returns:
1062+
Constructed block schema.
1063+
1064+
"""
1065+
if block is not None:
1066+
data = block.body
1067+
1068+
length = len(data)
1069+
1070+
return Schema_UnknownBlock(
1071+
length=length,
1072+
body=data,
1073+
length2=length,
1074+
)

0 commit comments

Comments
 (0)