pretty good
This commit is contained in:
@@ -22,6 +22,7 @@ except ImportError:
|
||||
sys.exit(1)
|
||||
|
||||
from .base import ProtocolDissector, DissectionResult, ProtocolType
|
||||
from .decoders.registry import decoder_registry
|
||||
|
||||
|
||||
class Chapter10Dissector(ProtocolDissector):
|
||||
@@ -117,7 +118,18 @@ class Chapter10Dissector(ProtocolDissector):
|
||||
if packet_length > 24 and payload_start + (packet_length - 24) <= len(raw_data):
|
||||
result.payload = raw_data[payload_start:payload_start + (packet_length - 24)]
|
||||
|
||||
# Try to parse specific data formats
|
||||
# Use new decoder framework for payload parsing
|
||||
decoded_payload = decoder_registry.decode_payload(result.payload, header)
|
||||
if decoded_payload:
|
||||
result.fields['decoded_payload'] = {
|
||||
'data_type_name': decoded_payload.data_type_name,
|
||||
'format_version': decoded_payload.format_version,
|
||||
'decoded_data': decoded_payload.decoded_data,
|
||||
'decoder_errors': decoded_payload.errors,
|
||||
'decoder_metadata': decoded_payload.metadata
|
||||
}
|
||||
|
||||
# Legacy Ethernet Format 0 parsing (for backwards compatibility)
|
||||
data_type = header.get('data_type', 0)
|
||||
if data_type == 0x40: # Ethernet Format 0
|
||||
eth_data = self._parse_ethernet_fmt0(result.payload)
|
||||
|
||||
Reference in New Issue
Block a user