pypcapkit 1.0.3.post3__tar.gz → 1.1.0.post1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pypcapkit-1.0.3.post3/pypcapkit.egg-info → pypcapkit-1.1.0.post1}/PKG-INFO +1 -1
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/__init__.py +1 -1
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/pcapng/option_type.py +25 -1
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/reg/apptype.py +25 -1
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/corekit/fields/collections.py +4 -5
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/corekit/fields/field.py +33 -8
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/corekit/fields/ipaddress.py +0 -1
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/corekit/fields/misc.py +14 -19
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/corekit/fields/numbers.py +2 -3
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/corekit/fields/strings.py +2 -3
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/corekit/infoclass.py +59 -6
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/corekit/protochain.py +8 -1
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/foundation/registry/protocols.py +30 -51
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/data/__init__.py +4 -4
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/data/internet/__init__.py +4 -4
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/data/internet/mh.py +4 -4
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/data/transport/__init__.py +4 -4
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/data/transport/tcp.py +4 -4
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/internet/mh.py +20 -20
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/protocol.py +3 -2
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/schema/__init__.py +4 -4
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/schema/application/httpv2.py +16 -29
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/schema/internet/__init__.py +4 -4
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/schema/internet/hip.py +62 -111
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/schema/internet/hopopt.py +46 -48
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/schema/internet/ipv4.py +36 -41
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/schema/internet/ipv6_opts.py +48 -52
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/schema/internet/ipv6_route.py +9 -20
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/schema/internet/mh.py +49 -84
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/schema/misc/pcapng.py +178 -195
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/schema/schema.py +252 -53
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/schema/transport/__init__.py +4 -4
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/schema/transport/tcp.py +52 -83
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/transport/tcp.py +14 -14
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/pcapng/option_type.py +25 -1
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/reg/apptype.py +25 -1
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1/pypcapkit.egg-info}/PKG-INFO +1 -1
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/LICENSE +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/MANIFEST.in +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/README.rst +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/__main__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/all.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/arp/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/arp/hardware.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/arp/operation.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/ftp/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/ftp/command.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/ftp/return_code.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/hip/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/hip/certificate.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/hip/cipher.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/hip/di.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/hip/ecdsa_curve.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/hip/ecdsa_low_curve.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/hip/eddsa_curve.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/hip/esp_transform_suite.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/hip/group.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/hip/hi_algorithm.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/hip/hit_suite.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/hip/nat_traversal.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/hip/notify_message.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/hip/packet.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/hip/parameter.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/hip/registration.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/hip/registration_failure.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/hip/suite.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/hip/transport.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/http/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/http/error_code.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/http/frame.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/http/method.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/http/setting.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/http/status_code.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/ipv4/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/ipv4/classification_level.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/ipv4/option_class.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/ipv4/option_number.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/ipv4/protection_authority.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/ipv4/qs_function.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/ipv4/router_alert.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/ipv4/tos_del.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/ipv4/tos_ecn.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/ipv4/tos_pre.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/ipv4/tos_rel.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/ipv4/tos_thr.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/ipv4/ts_flag.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/ipv6/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/ipv6/extension_header.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/ipv6/option.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/ipv6/option_action.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/ipv6/qs_function.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/ipv6/router_alert.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/ipv6/routing.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/ipv6/seed_id.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/ipv6/smf_dpd_mode.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/ipv6/tagger_id.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/ipx/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/ipx/packet.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/ipx/socket.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/l2tp/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/l2tp/type.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/mh/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/mh/access_type.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/mh/ack_status_code.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/mh/ani_suboption.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/mh/auth_subtype.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/mh/binding_ack_flag.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/mh/binding_error.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/mh/binding_revocation.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/mh/binding_update_flag.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/mh/cga_extension.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/mh/cga_sec.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/mh/cga_type.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/mh/dhcp_support_mode.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/mh/dns_status_code.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/mh/dsmip6_tls_packet.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/mh/dsmipv6_home_address.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/mh/enumerating_algorithm.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/mh/fb_ack_status.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/mh/fb_action.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/mh/fb_indication_trigger.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/mh/fb_type.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/mh/flow_id_status.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/mh/flow_id_suboption.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/mh/handoff_type.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/mh/handover_ack_flag.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/mh/handover_ack_status.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/mh/handover_initiate_flag.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/mh/handover_initiate_status.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/mh/home_address_reply.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/mh/lla_code.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/mh/lma_mag_suboption.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/mh/mn_group_id.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/mh/mn_id_subtype.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/mh/operator_id.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/mh/option.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/mh/packet.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/mh/qos_attribute.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/mh/revocation_status_code.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/mh/revocation_trigger.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/mh/status_code.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/mh/traffic_selector.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/mh/upa_status.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/mh/upn_reason.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/ospf/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/ospf/authentication.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/ospf/packet.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/pcapng/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/pcapng/block_type.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/pcapng/filter_type.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/pcapng/hash_algorithm.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/pcapng/record_type.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/pcapng/secrets_type.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/pcapng/verdict_type.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/reg/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/reg/ethertype.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/reg/linktype.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/reg/transtype.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/tcp/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/tcp/checksum.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/tcp/flags.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/tcp/mp_tcp_option.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/tcp/option.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/vlan/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/const/vlan/priority_level.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/corekit/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/corekit/fields/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/corekit/multidict.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/corekit/version.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/dumpkit/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/dumpkit/common.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/dumpkit/null.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/dumpkit/pcap.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/foundation/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/foundation/engines/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/foundation/engines/dpkt.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/foundation/engines/engine.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/foundation/engines/pcap.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/foundation/engines/pcapng.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/foundation/engines/pyshark.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/foundation/engines/scapy.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/foundation/extraction.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/foundation/reassembly/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/foundation/reassembly/data/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/foundation/reassembly/data/ip.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/foundation/reassembly/data/tcp.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/foundation/reassembly/ip.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/foundation/reassembly/ipv4.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/foundation/reassembly/ipv6.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/foundation/reassembly/reassembly.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/foundation/reassembly/tcp.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/foundation/registry/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/foundation/registry/foundation.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/foundation/traceflow/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/foundation/traceflow/data/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/foundation/traceflow/data/tcp.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/foundation/traceflow/tcp.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/foundation/traceflow/traceflow.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/interface/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/interface/core.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/interface/misc.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/application/NotImplemented/bgp.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/application/NotImplemented/dhcp.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/application/NotImplemented/dhcpv6.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/application/NotImplemented/dns.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/application/NotImplemented/imap.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/application/NotImplemented/ldap.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/application/NotImplemented/mqtt.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/application/NotImplemented/nntp.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/application/NotImplemented/ntp.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/application/NotImplemented/onc_rpc.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/application/NotImplemented/pop.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/application/NotImplemented/rip.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/application/NotImplemented/rtp.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/application/NotImplemented/sip.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/application/NotImplemented/smtp.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/application/NotImplemented/snmp.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/application/NotImplemented/ssh.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/application/NotImplemented/telnet.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/application/NotImplemented/tls.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/application/NotImplemented/xmpp.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/application/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/application/application.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/application/ftp.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/application/http.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/application/httpv1.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/application/httpv2.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/data/application/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/data/application/ftp.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/data/application/httpv1.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/data/application/httpv2.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/data/data.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/data/internet/ah.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/data/internet/hip.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/data/internet/hopopt.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/data/internet/ipv4.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/data/internet/ipv6.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/data/internet/ipv6_frag.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/data/internet/ipv6_opts.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/data/internet/ipv6_route.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/data/internet/ipx.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/data/link/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/data/link/arp.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/data/link/ethernet.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/data/link/l2tp.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/data/link/ospf.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/data/link/vlan.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/data/misc/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/data/misc/null.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/data/misc/pcap/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/data/misc/pcap/frame.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/data/misc/pcap/header.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/data/misc/pcapng.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/data/misc/raw.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/data/protocol.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/data/transport/udp.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/internet/NotImplemented/ecn.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/internet/NotImplemented/esp.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/internet/NotImplemented/icmp.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/internet/NotImplemented/icmpv6.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/internet/NotImplemented/igmp.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/internet/NotImplemented/shim6.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/internet/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/internet/ah.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/internet/hip.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/internet/hopopt.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/internet/internet.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/internet/ip.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/internet/ipsec.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/internet/ipv4.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/internet/ipv6.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/internet/ipv6_frag.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/internet/ipv6_opts.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/internet/ipv6_route.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/internet/ipx.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/link/NotImplemented/dsl.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/link/NotImplemented/eapol.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/link/NotImplemented/fddi.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/link/NotImplemented/isdn.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/link/NotImplemented/ndp.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/link/NotImplemented/ppp.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/link/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/link/arp.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/link/ethernet.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/link/l2tp.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/link/link.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/link/ospf.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/link/rarp.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/link/vlan.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/misc/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/misc/null.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/misc/pcap/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/misc/pcap/frame.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/misc/pcap/header.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/misc/pcapng.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/misc/raw.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/schema/application/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/schema/application/ftp.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/schema/application/httpv1.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/schema/internet/ah.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/schema/internet/ipv6.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/schema/internet/ipv6_frag.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/schema/internet/ipx.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/schema/link/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/schema/link/arp.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/schema/link/ethernet.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/schema/link/l2tp.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/schema/link/ospf.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/schema/link/vlan.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/schema/misc/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/schema/misc/null.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/schema/misc/pcap/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/schema/misc/pcap/frame.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/schema/misc/pcap/header.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/schema/misc/raw.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/schema/transport/udp.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/transport/NotImplemented/dccp.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/transport/NotImplemented/rsvp.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/transport/NotImplemented/sctp.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/transport/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/transport/transport.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/protocols/transport/udp.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/toolkit/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/toolkit/dpkt.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/toolkit/pcap.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/toolkit/pcapng.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/toolkit/pyshark.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/toolkit/scapy.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/utilities/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/utilities/compat.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/utilities/decorators.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/utilities/exceptions.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/utilities/logging.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/utilities/warnings.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/__main__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/arp/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/arp/hardware.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/arp/operation.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/default.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/ftp/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/ftp/command.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/ftp/return_code.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/hip/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/hip/certificate.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/hip/cipher.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/hip/di.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/hip/ecdsa_curve.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/hip/ecdsa_low_curve.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/hip/eddsa_curve.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/hip/esp_transform_suite.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/hip/group.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/hip/hi_algorithm.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/hip/hit_suite.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/hip/nat_traversal.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/hip/notify_message.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/hip/packet.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/hip/parameter.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/hip/registration.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/hip/registration_failure.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/hip/suite.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/hip/transport.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/http/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/http/error_code.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/http/frame.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/http/method.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/http/setting.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/http/status_code.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/ipv4/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/ipv4/classification_level.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/ipv4/option_class.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/ipv4/option_number.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/ipv4/protection_authority.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/ipv4/qs_function.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/ipv4/router_alert.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/ipv4/tos_del.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/ipv4/tos_ecn.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/ipv4/tos_pre.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/ipv4/tos_rel.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/ipv4/tos_thr.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/ipv4/ts_flag.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/ipv6/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/ipv6/extension_header.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/ipv6/option.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/ipv6/option_action.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/ipv6/qs_function.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/ipv6/router_alert.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/ipv6/routing.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/ipv6/seed_id.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/ipv6/smf_dpd_mode.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/ipv6/tagger_id.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/ipx/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/ipx/packet.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/ipx/socket.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/l2tp/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/l2tp/type.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/mh/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/mh/access_type.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/mh/ack_status_code.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/mh/ani_suboption.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/mh/auth_subtype.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/mh/binding_ack_flag.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/mh/binding_error.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/mh/binding_revocation.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/mh/binding_update_flag.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/mh/cga_extension.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/mh/cga_sec.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/mh/cga_type.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/mh/dhcp_support_mode.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/mh/dns_status_code.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/mh/dsmip6_tls_packet.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/mh/dsmipv6_home_address.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/mh/enumerating_algorithm.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/mh/fb_ack_status.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/mh/fb_action.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/mh/fb_indication_trigger.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/mh/fb_type.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/mh/flow_id_status.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/mh/flow_id_suboption.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/mh/handoff_type.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/mh/handover_ack_flag.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/mh/handover_ack_status.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/mh/handover_initiate_flag.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/mh/handover_initiate_status.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/mh/home_address_reply.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/mh/lla_code.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/mh/lma_mag_suboption.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/mh/mn_group_id.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/mh/mn_id_subtype.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/mh/operator_id.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/mh/option.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/mh/packet.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/mh/qos_attribute.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/mh/revocation_status_code.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/mh/revocation_trigger.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/mh/status_code.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/mh/traffic_selector.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/mh/upa_status.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/mh/upn_reason.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/ospf/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/ospf/authentication.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/ospf/packet.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/pcapng/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/pcapng/block_type.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/pcapng/filter_type.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/pcapng/hash_algorithm.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/pcapng/record_type.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/pcapng/secrets_type.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/pcapng/verdict_type.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/reg/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/reg/ethertype.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/reg/linktype.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/reg/transtype.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/tcp/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/tcp/checksum.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/tcp/flags.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/tcp/mp_tcp_option.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/tcp/option.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/vlan/__init__.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pcapkit/vendor/vlan/priority_level.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pypcapkit.egg-info/SOURCES.txt +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pypcapkit.egg-info/dependency_links.txt +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pypcapkit.egg-info/entry_points.txt +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pypcapkit.egg-info/not-zip-safe +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pypcapkit.egg-info/requires.txt +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pypcapkit.egg-info/top_level.txt +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/pyproject.toml +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/setup.cfg +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/setup.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/util/bump_version.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/util/conda-build.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/util/conda-dist.py +0 -0
- {pypcapkit-1.0.3.post3 → pypcapkit-1.1.0.post1}/util/wheel_rename.py +0 -0
@@ -18,7 +18,7 @@ from aenum import StrEnum, extend_enum
|
|
18
18
|
__all__ = ['OptionType']
|
19
19
|
|
20
20
|
if TYPE_CHECKING:
|
21
|
-
from typing import DefaultDict, Optional, Type
|
21
|
+
from typing import Any, DefaultDict, Optional, Type
|
22
22
|
|
23
23
|
|
24
24
|
class OptionType(StrEnum):
|
@@ -53,6 +53,30 @@ class OptionType(StrEnum):
|
|
53
53
|
def __str__(self) -> 'str':
|
54
54
|
return '%s [%d]' % (self.opt_name, self.opt_value)
|
55
55
|
|
56
|
+
def __int__(self) -> 'int':
|
57
|
+
return self.opt_value
|
58
|
+
|
59
|
+
def __lt__(self, other: 'OptionType') -> 'bool':
|
60
|
+
return self.opt_value < other
|
61
|
+
|
62
|
+
def __gt__(self, other: 'OptionType') -> 'bool':
|
63
|
+
return self.opt_value > other
|
64
|
+
|
65
|
+
def __le__(self, other: 'OptionType') -> 'bool':
|
66
|
+
return self.opt_value <= other
|
67
|
+
|
68
|
+
def __ge__(self, other: 'OptionType') -> 'bool':
|
69
|
+
return self.opt_value >= other
|
70
|
+
|
71
|
+
def __eq__(self, other: 'Any') -> 'bool':
|
72
|
+
return self.opt_value == other
|
73
|
+
|
74
|
+
def __ne__(self, other: 'Any') -> 'bool':
|
75
|
+
return self.opt_value != other
|
76
|
+
|
77
|
+
def __hash__(self) -> 'int':
|
78
|
+
return hash(self.opt_value)
|
79
|
+
|
56
80
|
#: opt_endofopt
|
57
81
|
opt_endofopt: 'OptionType' = 0, 'opt_endofopt'
|
58
82
|
|
@@ -20,7 +20,7 @@ from pcapkit.utilities.compat import show_flag_values
|
|
20
20
|
__all__ = ['AppType']
|
21
21
|
|
22
22
|
if TYPE_CHECKING:
|
23
|
-
from typing import DefaultDict, Type
|
23
|
+
from typing import Any, DefaultDict, Type
|
24
24
|
|
25
25
|
|
26
26
|
class TransportProtocol(IntFlag):
|
@@ -92,6 +92,30 @@ class AppType(StrEnum):
|
|
92
92
|
def __str__(self) -> 'str':
|
93
93
|
return '%s [%d - %s]' % (self.svc, self.port, self.proto.name)
|
94
94
|
|
95
|
+
def __int__(self) -> 'int':
|
96
|
+
return self.opt_value
|
97
|
+
|
98
|
+
def __lt__(self, other: 'AppType') -> 'bool':
|
99
|
+
return self.opt_value < other
|
100
|
+
|
101
|
+
def __gt__(self, other: 'AppType') -> 'bool':
|
102
|
+
return self.opt_value > other
|
103
|
+
|
104
|
+
def __le__(self, other: 'AppType') -> 'bool':
|
105
|
+
return self.opt_value <= other
|
106
|
+
|
107
|
+
def __ge__(self, other: 'AppType') -> 'bool':
|
108
|
+
return self.opt_value >= other
|
109
|
+
|
110
|
+
def __eq__(self, other: 'Any') -> 'bool':
|
111
|
+
return self.opt_value == other
|
112
|
+
|
113
|
+
def __ne__(self, other: 'Any') -> 'bool':
|
114
|
+
return self.opt_value != other
|
115
|
+
|
116
|
+
def __hash__(self) -> 'int':
|
117
|
+
return hash(self.opt_value)
|
118
|
+
|
95
119
|
#: - [TCP] Reserved
|
96
120
|
#: - [UDP] Reserved
|
97
121
|
reserved_0: 'AppType' = 0, 'reserved', TransportProtocol.get('tcp') | TransportProtocol.get('udp')
|
@@ -56,7 +56,7 @@ class ListField(_Field[List[_TL]], Generic[_TL]):
|
|
56
56
|
def __init__(self, length: 'int | Callable[[dict[str, Any]], int]' = lambda _: -1,
|
57
57
|
item_type: 'Optional[_Field]' = None,
|
58
58
|
callback: 'Callable[[Self, dict[str, Any]], None]' = lambda *_: None) -> 'None':
|
59
|
-
self._name = '<list>'
|
59
|
+
#self._name = '<list>'
|
60
60
|
self._callback = callback
|
61
61
|
self._item_type = item_type
|
62
62
|
|
@@ -75,9 +75,8 @@ class ListField(_Field[List[_TL]], Generic[_TL]):
|
|
75
75
|
Returns:
|
76
76
|
Updated field instance.
|
77
77
|
|
78
|
-
|
79
|
-
|
80
|
-
instead of updating the current instance.
|
78
|
+
This method will return a new instance of :class:`ListField`
|
79
|
+
instead of updating the current instance.
|
81
80
|
|
82
81
|
"""
|
83
82
|
new_self = copy.copy(self)
|
@@ -213,7 +212,7 @@ class OptionField(ListField, Generic[_TS]):
|
|
213
212
|
eool: 'Optional[int | StdlibEnum | AenumEnum]' = None,
|
214
213
|
callback: 'Callable[[Self, dict[str, Any]], None]' = lambda *_: None) -> 'None':
|
215
214
|
super().__init__(length, None, callback)
|
216
|
-
self._name = '<option>'
|
215
|
+
#self._name = '<option>'
|
217
216
|
self._eool = eool
|
218
217
|
self._option_padding = 0
|
219
218
|
|
@@ -16,6 +16,8 @@ if TYPE_CHECKING:
|
|
16
16
|
|
17
17
|
from typing_extensions import Literal, Self
|
18
18
|
|
19
|
+
from pcapkit.protocols.schema.schema import Schema
|
20
|
+
|
19
21
|
_T = TypeVar('_T')
|
20
22
|
|
21
23
|
|
@@ -41,6 +43,10 @@ class _Field(Generic[_T], metaclass=abc.ABCMeta):
|
|
41
43
|
:meth:`~_Field.pack` should be considerate of the template format
|
42
44
|
and the actual value provided for packing.
|
43
45
|
|
46
|
+
Args:
|
47
|
+
*args: Arbitrary positional arguments.
|
48
|
+
**kwargs: Arbitrary keyword arguments.
|
49
|
+
|
44
50
|
"""
|
45
51
|
|
46
52
|
if TYPE_CHECKING:
|
@@ -98,9 +104,8 @@ class _Field(Generic[_T], metaclass=abc.ABCMeta):
|
|
98
104
|
Returns:
|
99
105
|
Updated field instance.
|
100
106
|
|
101
|
-
|
102
|
-
|
103
|
-
updating the current instance.
|
107
|
+
This method will return a new instance of :class:`_Field` instead of
|
108
|
+
updating the current instance.
|
104
109
|
|
105
110
|
"""
|
106
111
|
new_self = copy.copy(self)
|
@@ -109,7 +114,9 @@ class _Field(Generic[_T], metaclass=abc.ABCMeta):
|
|
109
114
|
|
110
115
|
# NOTE: This method is created as a placeholder for the necessary attributes.
|
111
116
|
def __init__(self, *args: 'Any', **kwargs: 'Any') -> 'None':
|
112
|
-
|
117
|
+
if not hasattr(self, '_name'):
|
118
|
+
self._name = f'<{type(self).__name__[:-5].lower()}>'
|
119
|
+
|
113
120
|
self._default = NoValue
|
114
121
|
self._template = '0s'
|
115
122
|
self._callback = lambda *_: None
|
@@ -119,6 +126,22 @@ class _Field(Generic[_T], metaclass=abc.ABCMeta):
|
|
119
126
|
return f'<{self.__class__.__name__}>'
|
120
127
|
return f'<{self.__class__.__name__} {self.name}>'
|
121
128
|
|
129
|
+
def __set_name__(self, owner: 'Schema', name: 'str') -> 'None':
|
130
|
+
"""Set field name and update field list (if applicable).
|
131
|
+
|
132
|
+
This method is to be called by the metaclass during class creation.
|
133
|
+
It is used to set the field name and update the field list, i.e.,
|
134
|
+
:attr:`Schema.__fields__ <pcapkit.protocols.schema.schema.Schema.__fields__>`
|
135
|
+
mapping dictionary.
|
136
|
+
|
137
|
+
"""
|
138
|
+
# Update field list (if applicable)
|
139
|
+
if hasattr(owner, '__fields__'):
|
140
|
+
owner.__fields__[name] = self
|
141
|
+
|
142
|
+
# Set field name
|
143
|
+
self.name = name
|
144
|
+
|
122
145
|
def pre_process(self, value: '_T', packet: 'dict[str, Any]') -> 'Any': # pylint: disable=unused-argument
|
123
146
|
"""Process field value before construction (packing).
|
124
147
|
|
@@ -204,7 +227,10 @@ class Field(_Field[_T], Generic[_T]):
|
|
204
227
|
def __init__(self, length: 'int | Callable[[dict[str, Any]], int]',
|
205
228
|
default: '_T | NoValueType' = NoValue,
|
206
229
|
callback: 'Callable[[Self, dict[str, Any]], None]' = lambda *_: None) -> 'None':
|
207
|
-
self._name = '<unknown>'
|
230
|
+
#self._name = '<unknown>'
|
231
|
+
if not hasattr(self, '_name'):
|
232
|
+
self._name = f'<{type(self).__name__[:-5].lower()}>'
|
233
|
+
|
208
234
|
self._default = default
|
209
235
|
self._callback = callback
|
210
236
|
|
@@ -222,9 +248,8 @@ class Field(_Field[_T], Generic[_T]):
|
|
222
248
|
Returns:
|
223
249
|
New instance of :class:`Field`.
|
224
250
|
|
225
|
-
|
226
|
-
|
227
|
-
updating the current instance.
|
251
|
+
This method will return a new instance of :class:`Field` instead of
|
252
|
+
updating the current instance.
|
228
253
|
|
229
254
|
"""
|
230
255
|
new_self = copy.copy(self)
|
@@ -141,9 +141,8 @@ class ConditionalField(_Field[_TC]):
|
|
141
141
|
Returns:
|
142
142
|
Updated field instance.
|
143
143
|
|
144
|
-
|
145
|
-
|
146
|
-
instead of updating the current instance.
|
144
|
+
This method will return a new instance of :class:`ConditionalField`
|
145
|
+
instead of updating the current instance.
|
147
146
|
|
148
147
|
"""
|
149
148
|
new_self = copy.copy(self)
|
@@ -273,7 +272,7 @@ class PayloadField(_Field[_TP]):
|
|
273
272
|
default: '_TP | NoValueType | bytes' = NoValue,
|
274
273
|
protocol: 'Optional[Type[_TP]]' = None,
|
275
274
|
callback: 'Callable[[Self, dict[str, Any]], None]' = lambda *_: None) -> 'None':
|
276
|
-
self._name = '<payload>'
|
275
|
+
#self._name = '<payload>'
|
277
276
|
self._default = default # type: ignore[assignment]
|
278
277
|
self._protocol = protocol # type: ignore[assignment]
|
279
278
|
self._callback = callback
|
@@ -293,9 +292,8 @@ class PayloadField(_Field[_TP]):
|
|
293
292
|
Returns:
|
294
293
|
Updated field instance.
|
295
294
|
|
296
|
-
|
297
|
-
|
298
|
-
instead of updating the current instance.
|
295
|
+
This method will return a new instance of :class:`PayloadField`
|
296
|
+
instead of updating the current instance.
|
299
297
|
|
300
298
|
"""
|
301
299
|
new_self = copy.copy(self)
|
@@ -409,7 +407,7 @@ class SwitchField(_Field[_TC]):
|
|
409
407
|
return self._field
|
410
408
|
|
411
409
|
def __init__(self, selector: 'Callable[[dict[str, Any]], _Field[_TC]]' = lambda _: NoValueField()) -> 'None': # type: ignore[assignment,return-value]
|
412
|
-
self._name = '<switch>'
|
410
|
+
#self._name = '<switch>'
|
413
411
|
self._field = cast('_Field[_TC]', NoValueField())
|
414
412
|
self._selector = selector
|
415
413
|
|
@@ -422,9 +420,8 @@ class SwitchField(_Field[_TC]):
|
|
422
420
|
Returns:
|
423
421
|
New field instance.
|
424
422
|
|
425
|
-
|
426
|
-
|
427
|
-
instead of updating the current instance.
|
423
|
+
This method will return a new instance of :class:`SwitchField`
|
424
|
+
instead of updating the current instance.
|
428
425
|
|
429
426
|
"""
|
430
427
|
new_self = copy.copy(self)
|
@@ -527,7 +524,7 @@ class SchemaField(_Field[_TS]):
|
|
527
524
|
default: '_TS | NoValueType | bytes' = NoValue,
|
528
525
|
packet: 'Optional[dict[str, Any]]' = None,
|
529
526
|
callback: 'Callable[[Self, dict[str, Any]], None]' = lambda *_: None) -> 'None':
|
530
|
-
self._name = '<schema>'
|
527
|
+
#self._name = '<schema>'
|
531
528
|
self._callback = callback
|
532
529
|
|
533
530
|
if packet is None:
|
@@ -557,9 +554,8 @@ class SchemaField(_Field[_TS]):
|
|
557
554
|
Returns:
|
558
555
|
New field instance.
|
559
556
|
|
560
|
-
|
561
|
-
|
562
|
-
instead of updating the current instance.
|
557
|
+
This method will return a new instance of :class:`SchemaField`
|
558
|
+
instead of updating the current instance.
|
563
559
|
|
564
560
|
"""
|
565
561
|
new_self = copy.copy(self)
|
@@ -679,7 +675,7 @@ class ForwardMatchField(_Field[_TC]):
|
|
679
675
|
return self._field
|
680
676
|
|
681
677
|
def __init__(self, field: '_Field[_TC]') -> 'None':
|
682
|
-
self._name = '<forward_match>'
|
678
|
+
#self._name = '<forward_match>'
|
683
679
|
self._field = field
|
684
680
|
|
685
681
|
def __call__(self, packet: 'dict[str, Any]') -> 'Self':
|
@@ -691,9 +687,8 @@ class ForwardMatchField(_Field[_TC]):
|
|
691
687
|
Returns:
|
692
688
|
Updated field instance.
|
693
689
|
|
694
|
-
|
695
|
-
|
696
|
-
instead of updating the current instance.
|
690
|
+
This method will return a new instance of :class:`ConditionalField`
|
691
|
+
instead of updating the current instance.
|
697
692
|
|
698
693
|
"""
|
699
694
|
new_self = copy.copy(self)
|
@@ -92,9 +92,8 @@ class NumberField(Field[int], Generic[_T]):
|
|
92
92
|
Returns:
|
93
93
|
New instance of :class:`NumberField`.
|
94
94
|
|
95
|
-
|
96
|
-
|
97
|
-
updating the current instance.
|
95
|
+
This method will return a new instance of :class:`NumberField` instead of
|
96
|
+
updating the current instance.
|
98
97
|
|
99
98
|
"""
|
100
99
|
new_self = super().__call__(packet)
|
@@ -56,9 +56,8 @@ class _TextField(Field[_T], Generic[_T]):
|
|
56
56
|
Returns:
|
57
57
|
New instance of :class:`_TextField`.
|
58
58
|
|
59
|
-
|
60
|
-
|
61
|
-
updating the current instance.
|
59
|
+
This method will return a new instance of :class:`_TextField` instead of
|
60
|
+
updating the current instance.
|
62
61
|
|
63
62
|
"""
|
64
63
|
new_self = super().__call__(packet)
|
@@ -10,6 +10,7 @@ designed to work alike :func:`dataclasses.dataclass` as introduced
|
|
10
10
|
in :pep:`557`.
|
11
11
|
|
12
12
|
"""
|
13
|
+
import abc
|
13
14
|
import collections.abc
|
14
15
|
import enum
|
15
16
|
import itertools
|
@@ -49,6 +50,11 @@ def info_final(cls: 'ST', *, _finalised: 'bool' = True) -> 'ST':
|
|
49
50
|
class. It can be useful to reduce runtime generation
|
50
51
|
time as well as caching already generated attributes.
|
51
52
|
|
53
|
+
Notes:
|
54
|
+
The decorator should only be used on the *final*
|
55
|
+
class, otherwise, any subclasses derived from a
|
56
|
+
finalised info class will not be re-finalised.
|
57
|
+
|
52
58
|
Args:
|
53
59
|
cls: Info class.
|
54
60
|
_finalised: Whether to make the info class as finalised.
|
@@ -56,11 +62,6 @@ def info_final(cls: 'ST', *, _finalised: 'bool' = True) -> 'ST':
|
|
56
62
|
Returns:
|
57
63
|
Finalised info class.
|
58
64
|
|
59
|
-
Notes:
|
60
|
-
The decorator should only be used on the *final*
|
61
|
-
class, otherwise, any subclasses derived from a
|
62
|
-
finalised info class will not be re-finalised.
|
63
|
-
|
64
65
|
:meta decorator:
|
65
66
|
"""
|
66
67
|
if cls.__finalised__ == FinalisedState.FINAL:
|
@@ -140,7 +141,59 @@ def info_final(cls: 'ST', *, _finalised: 'bool' = True) -> 'ST':
|
|
140
141
|
return final(cls)
|
141
142
|
|
142
143
|
|
143
|
-
class
|
144
|
+
class InfoMeta(abc.ABCMeta):
|
145
|
+
"""Meta class to add dynamic support to :class:`Info`.
|
146
|
+
|
147
|
+
This meta class is used to generate necessary attributes for the
|
148
|
+
:class:`Info` class. It can be useful to reduce runtime generation
|
149
|
+
cost as well as caching already generated attributes.
|
150
|
+
|
151
|
+
* :attr:`Info.__additional__` and :attr:`Info.__excluded__` are
|
152
|
+
lists of additional and excluded field names, which are used to
|
153
|
+
determine certain names to be included or excluded from the field
|
154
|
+
dictionary. They will be automatically populated from the class
|
155
|
+
attributes of the :class:`Info` class and its base classes.
|
156
|
+
|
157
|
+
.. note::
|
158
|
+
|
159
|
+
This is implemented thru the :meth:`__new__` method, which will
|
160
|
+
inherit the additional and excluded field names from the base
|
161
|
+
classes, as well as populating the additional and excluded field
|
162
|
+
from the subclass attributes.
|
163
|
+
|
164
|
+
.. code-block:: python
|
165
|
+
|
166
|
+
class A(Info):
|
167
|
+
__additional__ = ['a', 'b']
|
168
|
+
|
169
|
+
class B(A):
|
170
|
+
__additional__ = ['c', 'd']
|
171
|
+
|
172
|
+
class C(B):
|
173
|
+
__additional__ = ['e', 'f']
|
174
|
+
|
175
|
+
print(A.__additional__) # ['a', 'b']
|
176
|
+
print(B.__additional__) # ['a', 'b', 'c', 'd']
|
177
|
+
print(C.__additional__) # ['a', 'b', 'c', 'd', 'e', 'f']
|
178
|
+
|
179
|
+
"""
|
180
|
+
|
181
|
+
def __new__(cls, name: 'str', bases: 'tuple[type, ...]', attrs: 'dict[str, Any]', **kwargs: 'Any') -> 'Type[Info]':
|
182
|
+
if '__additional__' not in attrs:
|
183
|
+
attrs['__additional__'] = []
|
184
|
+
if '__excluded__' not in attrs:
|
185
|
+
attrs['__excluded__'] = []
|
186
|
+
|
187
|
+
for base in bases:
|
188
|
+
if hasattr(base, '__additional__'):
|
189
|
+
attrs['__additional__'].extend(
|
190
|
+
name for name in base.__additional__ if name not in attrs['__additional__'])
|
191
|
+
if hasattr(base, '__excluded__'):
|
192
|
+
attrs['__excluded__'].extend(name for name in base.__excluded__ if name not in attrs['__excluded__'])
|
193
|
+
return super().__new__(cls, name, bases, attrs, **kwargs) # type: ignore[return-value]
|
194
|
+
|
195
|
+
|
196
|
+
class Info(Mapping[str, VT], Generic[VT], metaclass=InfoMeta):
|
144
197
|
"""Turn dictionaries into :obj:`object` like instances.
|
145
198
|
|
146
199
|
* :class:`Info` objects inherit from :obj:`dict` type
|
@@ -26,7 +26,14 @@ __all__ = ['ProtoChain']
|
|
26
26
|
|
27
27
|
|
28
28
|
class ProtoChain(collections.abc.Sequence):
|
29
|
-
"""Protocols chain.
|
29
|
+
"""Protocols chain.
|
30
|
+
|
31
|
+
Args:
|
32
|
+
proto: New protocol class on the top stack.
|
33
|
+
alias: New protocol alias on the top stack.
|
34
|
+
basis: Original protocol chain as base stacks.
|
35
|
+
|
36
|
+
"""
|
30
37
|
|
31
38
|
#: Internal data storage for protocol chain.
|
32
39
|
__data__: 'tuple[tuple[str, Type[Protocol]], ...]'
|
@@ -8,7 +8,7 @@ This module provides the protocol registries for :mod:`pcapkit`.
|
|
8
8
|
|
9
9
|
"""
|
10
10
|
import importlib
|
11
|
-
from typing import TYPE_CHECKING
|
11
|
+
from typing import TYPE_CHECKING
|
12
12
|
|
13
13
|
from pcapkit.protocols import __proto__ as protocol_registry
|
14
14
|
from pcapkit.protocols.application.httpv2 import HTTP as HTTPv2
|
@@ -23,21 +23,23 @@ from pcapkit.protocols.link.link import Link
|
|
23
23
|
from pcapkit.protocols.misc.pcap.frame import Frame
|
24
24
|
from pcapkit.protocols.misc.pcapng import PCAPNG
|
25
25
|
from pcapkit.protocols.protocol import Protocol
|
26
|
-
from pcapkit.protocols.schema.application.httpv2 import
|
27
|
-
from pcapkit.protocols.schema.internet.hip import
|
28
|
-
from pcapkit.protocols.schema.internet.hopopt import
|
29
|
-
from pcapkit.protocols.schema.internet.ipv4 import
|
30
|
-
from pcapkit.protocols.schema.internet.ipv6_opts import
|
31
|
-
from pcapkit.protocols.schema.internet.ipv6_route import
|
32
|
-
|
33
|
-
from pcapkit.protocols.schema.internet.mh import
|
26
|
+
from pcapkit.protocols.schema.application.httpv2 import FrameType as Schema_HTTP_FrameType
|
27
|
+
from pcapkit.protocols.schema.internet.hip import Parameter as Schema_HIP_Parameter
|
28
|
+
from pcapkit.protocols.schema.internet.hopopt import Option as Schema_HOPOPT_Option
|
29
|
+
from pcapkit.protocols.schema.internet.ipv4 import Option as Schema_IPv4_Option
|
30
|
+
from pcapkit.protocols.schema.internet.ipv6_opts import Option as Schema_IPv6_Opts_Option
|
31
|
+
from pcapkit.protocols.schema.internet.ipv6_route import \
|
32
|
+
RoutingType as Schema_IPv6_Route_RoutingType
|
33
|
+
from pcapkit.protocols.schema.internet.mh import CGAExtension as Schema_MH_CGAExtension
|
34
|
+
from pcapkit.protocols.schema.internet.mh import Option as Schema_MH_Option
|
34
35
|
from pcapkit.protocols.schema.internet.mh import Packet as Schema_MH_Packet
|
35
|
-
from pcapkit.protocols.schema.misc.pcapng import MAP_DSB_SECRETS, MAP_PCAPNG_BLOCK
|
36
36
|
from pcapkit.protocols.schema.misc.pcapng import BlockType as Schema_PCAPNG_BlockType
|
37
|
+
from pcapkit.protocols.schema.misc.pcapng import DSBSecrets as Schema_PCAPNG_DSBSecrets
|
37
38
|
from pcapkit.protocols.schema.misc.pcapng import \
|
38
|
-
|
39
|
-
from pcapkit.protocols.schema.
|
40
|
-
from pcapkit.protocols.schema.transport.tcp import
|
39
|
+
NameResolutionRecord as Schema_PCAPNG_NameResolutionRecord
|
40
|
+
from pcapkit.protocols.schema.misc.pcapng import Option as Schema_PCAPNG_Option
|
41
|
+
from pcapkit.protocols.schema.transport.tcp import MPTCP as Schema_TCP_MPTCP
|
42
|
+
from pcapkit.protocols.schema.transport.tcp import Option as Schema_TCP_Option
|
41
43
|
from pcapkit.protocols.transport.tcp import TCP
|
42
44
|
from pcapkit.protocols.transport.udp import UDP
|
43
45
|
from pcapkit.utilities.exceptions import RegistryError
|
@@ -65,7 +67,6 @@ if TYPE_CHECKING:
|
|
65
67
|
from pcapkit.const.reg.transtype import TransType
|
66
68
|
from pcapkit.const.tcp.mp_tcp_option import MPTCPOption as TCP_MPTCPOption
|
67
69
|
from pcapkit.const.tcp.option import Option as TCP_Option
|
68
|
-
from pcapkit.corekit.fields.collections import OptionField
|
69
70
|
from pcapkit.protocols.application.httpv2 import FrameConstructor as HTTP_FrameConstructor
|
70
71
|
from pcapkit.protocols.application.httpv2 import FrameParser as HTTP_FrameParser
|
71
72
|
from pcapkit.protocols.internet.hip import ParameterConstructor as HIP_ParameterConstructor
|
@@ -93,22 +94,6 @@ if TYPE_CHECKING:
|
|
93
94
|
from pcapkit.protocols.misc.pcapng import RecordParser as PCAPNG_RecordParser
|
94
95
|
from pcapkit.protocols.misc.pcapng import SecretsConstructor as PCAPNG_SecretsConstructor
|
95
96
|
from pcapkit.protocols.misc.pcapng import SecretsParser as PCAPNG_SecretsParser
|
96
|
-
from pcapkit.protocols.schema.application.httpv2 import FrameType as Schema_HTTP_FrameType
|
97
|
-
from pcapkit.protocols.schema.internet.hip import Parameter as Schema_HIP_Parameter
|
98
|
-
from pcapkit.protocols.schema.internet.hopopt import Option as Schema_HOPOPT_Option
|
99
|
-
from pcapkit.protocols.schema.internet.ipv4 import Option as Schema_IPv4_Option
|
100
|
-
from pcapkit.protocols.schema.internet.ipv6_opts import Option as Schema_IPv6_Opts_Option
|
101
|
-
from pcapkit.protocols.schema.internet.ipv6_route import \
|
102
|
-
RoutingType as Schema_IPv6_Route_RoutingType
|
103
|
-
from pcapkit.protocols.schema.internet.mh import CGAExtension as Schema_MH_CGAExtension
|
104
|
-
from pcapkit.protocols.schema.internet.mh import Option as Schema_MH_Option
|
105
|
-
from pcapkit.protocols.schema.internet.mh import Packet as Schema_MH_Packet
|
106
|
-
from pcapkit.protocols.schema.misc.pcapng import DSBSecrets as Schema_PCAPNG_DSBSecrets
|
107
|
-
from pcapkit.protocols.schema.misc.pcapng import \
|
108
|
-
NameResolutionRecord as Schema_PCAPNG_NameResolutionRecord
|
109
|
-
from pcapkit.protocols.schema.misc.pcapng import Option as Schema_PCAPNG_Option
|
110
|
-
from pcapkit.protocols.schema.transport.tcp import MPTCP as Schema_TCP_MPTCP
|
111
|
-
from pcapkit.protocols.schema.transport.tcp import Option as Schema_TCP_Option
|
112
97
|
from pcapkit.protocols.transport.tcp import MPOptionConstructor as TCP_MPOptionConstructor
|
113
98
|
from pcapkit.protocols.transport.tcp import MPOptionParser as TCP_MPOptionParser
|
114
99
|
from pcapkit.protocols.transport.tcp import OptionConstructor as TCP_OptionConstructor
|
@@ -340,7 +325,7 @@ def register_ipv4_option(code: 'IPv4_OptionNumber', meth: 'str | tuple[IPv4_Opti
|
|
340
325
|
|
341
326
|
IPv4.register_option(code, meth)
|
342
327
|
if schema is not None:
|
343
|
-
|
328
|
+
Schema_IPv4_Option.register(code, schema)
|
344
329
|
logger.info('registered IPv4 option parser: %s', code.name)
|
345
330
|
|
346
331
|
|
@@ -365,7 +350,7 @@ def register_hip_parameter(code: 'HIP_Parameter', meth: 'str | tuple[HIP_Paramet
|
|
365
350
|
|
366
351
|
HIP.register_parameter(code, meth)
|
367
352
|
if schema is not None:
|
368
|
-
|
353
|
+
Schema_HIP_Parameter.register(code, schema)
|
369
354
|
logger.info('registered HIP parameter parser: %s', code.name)
|
370
355
|
|
371
356
|
|
@@ -390,7 +375,7 @@ def register_hopopt_option(code: 'IPv6_Option', meth: 'str | tuple[HOPOPT_Option
|
|
390
375
|
|
391
376
|
HOPOPT.register_option(code, meth)
|
392
377
|
if schema is not None:
|
393
|
-
|
378
|
+
Schema_HOPOPT_Option.register(code, schema)
|
394
379
|
logger.info('registered HOPOPT option parser: %s', code.name)
|
395
380
|
|
396
381
|
|
@@ -415,7 +400,7 @@ def register_ipv6_opts_option(code: 'IPv6_Option', meth: 'str | tuple[IPv6_Opts_
|
|
415
400
|
|
416
401
|
IPv6_Opts.register_option(code, meth)
|
417
402
|
if schema is not None:
|
418
|
-
|
403
|
+
Schema_IPv6_Opts_Option.register(code, schema)
|
419
404
|
logger.info('registered IPv6-Opts option parser: %s', code.name)
|
420
405
|
|
421
406
|
|
@@ -440,7 +425,7 @@ def register_ipv6_route_routing(code: 'IPv6_Routing', meth: 'str | tuple[IPv6_Ro
|
|
440
425
|
|
441
426
|
IPv6_Route.register_routing(code, meth)
|
442
427
|
if schema is not None:
|
443
|
-
|
428
|
+
Schema_IPv6_Route_RoutingType.register(code, schema)
|
444
429
|
logger.info('registered IPv6-Route routing data parser: %s', code.name)
|
445
430
|
|
446
431
|
|
@@ -465,7 +450,7 @@ def register_mh_message(code: 'MH_Packet', meth: 'str | tuple[MH_PacketParser, M
|
|
465
450
|
|
466
451
|
MH.register_message(code, meth)
|
467
452
|
if schema is not None:
|
468
|
-
|
453
|
+
Schema_MH_Packet.register(code, schema)
|
469
454
|
logger.info('registered MH message type parser: %s', code.name)
|
470
455
|
|
471
456
|
|
@@ -490,10 +475,7 @@ def register_mh_option(code: 'MH_Option', meth: 'str | tuple[MH_OptionParser, MH
|
|
490
475
|
|
491
476
|
MH.register_option(code, meth)
|
492
477
|
if schema is not None:
|
493
|
-
|
494
|
-
if not hasattr(subclass, 'options'):
|
495
|
-
continue
|
496
|
-
cast('OptionField[Schema_MH_Option]', subclass.options).registry[code] = schema
|
478
|
+
Schema_MH_Option.register(code, schema)
|
497
479
|
logger.info('registered MH option parser: %s', code.name)
|
498
480
|
|
499
481
|
|
@@ -518,7 +500,7 @@ def register_mh_extension(code: 'MH_CGAExtension', meth: 'str | tuple[MH_Extensi
|
|
518
500
|
|
519
501
|
MH.register_extension(code, meth)
|
520
502
|
if schema is not None:
|
521
|
-
|
503
|
+
Schema_MH_CGAExtension.register(code, schema)
|
522
504
|
logger.info('registered MH CGA extension: %s', code.name)
|
523
505
|
|
524
506
|
|
@@ -616,7 +598,7 @@ def register_tcp_option(code: 'TCP_Option', meth: 'str | tuple[TCP_OptionParser,
|
|
616
598
|
|
617
599
|
TCP.register_option(code, meth)
|
618
600
|
if schema is not None:
|
619
|
-
|
601
|
+
Schema_TCP_Option.register(code, schema)
|
620
602
|
logger.info('registered TCP option parser: %s', code.name)
|
621
603
|
|
622
604
|
|
@@ -641,7 +623,7 @@ def register_tcp_mp_option(code: 'TCP_MPTCPOption', meth: 'str | tuple[TCP_MPOpt
|
|
641
623
|
|
642
624
|
TCP.register_mp_option(code, meth)
|
643
625
|
if schema is not None:
|
644
|
-
|
626
|
+
Schema_TCP_MPTCP.register(code, schema)
|
645
627
|
logger.info('registered MPTCP option parser: %s', code.name)
|
646
628
|
|
647
629
|
|
@@ -699,7 +681,7 @@ def register_http_frame(code: 'HTTP_Frame', meth: 'str | tuple[HTTP_FrameParser,
|
|
699
681
|
|
700
682
|
HTTPv2.register_frame(code, meth)
|
701
683
|
if schema is not None:
|
702
|
-
|
684
|
+
Schema_HTTP_FrameType.register(code, schema)
|
703
685
|
logger.info('registered HTTP/2 frame parser: %s', code.name)
|
704
686
|
|
705
687
|
|
@@ -729,7 +711,7 @@ def register_pcapng_block(code: 'PCAPNG_BlockType', meth: 'str | tuple[PCAPNG_Bl
|
|
729
711
|
|
730
712
|
PCAPNG.register_block(code, meth)
|
731
713
|
if schema is not None:
|
732
|
-
|
714
|
+
Schema_PCAPNG_BlockType.register(code, schema)
|
733
715
|
logger.info('registered PCAP-NG block parser: %s', code.name)
|
734
716
|
|
735
717
|
|
@@ -754,10 +736,7 @@ def register_pcapng_option(code: 'PCAPNG_OptionType', meth: 'str | tuple[PCAPNG_
|
|
754
736
|
|
755
737
|
PCAPNG.register_option(code, meth)
|
756
738
|
if schema is not None:
|
757
|
-
|
758
|
-
if not hasattr(subclass, 'options'):
|
759
|
-
continue
|
760
|
-
cast('OptionField[Schema_PCAPNG_Option]', subclass.options).registry[code] = schema
|
739
|
+
Schema_PCAPNG_Option.register(code, schema)
|
761
740
|
logger.info('registered PCAP-NG option parser: %s', code.name)
|
762
741
|
|
763
742
|
|
@@ -783,7 +762,7 @@ def register_pcapng_record(code: 'PCAPNG_RecordType', meth: 'str | tuple[PCAPNG_
|
|
783
762
|
|
784
763
|
PCAPNG.register_record(code, meth)
|
785
764
|
if schema is not None:
|
786
|
-
|
765
|
+
Schema_PCAPNG_NameResolutionRecord.register(code, schema)
|
787
766
|
logger.info('registered PCAP-NG name resolution record parser: %s', code.name)
|
788
767
|
|
789
768
|
|
@@ -808,5 +787,5 @@ def register_pcapng_secrets(code: 'PCAPNG_SecretsType', meth: 'str | tuple[PCAPN
|
|
808
787
|
|
809
788
|
PCAPNG.register_secrets(code, meth)
|
810
789
|
if schema is not None:
|
811
|
-
|
790
|
+
Schema_PCAPNG_DSBSecrets.register(code, schema)
|
812
791
|
logger.info('registered PCAP-NG decryption secrets parser: %s', code.name)
|