Skip to content

PyPCAPKit v1.5.0b2

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 19 Sep 01:55
· 1195 commits to main since this release
1164f2b

What's Changed

🏕 Features

  • interface: dispatch follow_tcp_stream on the engine, and fix the dpkt crash by @JarryShaw in #402
  • pcap/pcapng: fix frame bytes, output filenames, and timestamp timezones by @JarryShaw in #403
  • protocols: honour layer=/protocol= limits, and forward the packet context by @JarryShaw in #404
  • engines: add the pcap_ct engine, and make unsupported_reason a real preflight by @JarryShaw in #405
  • gitignore: add .bench-venvs to ignore list by @JarryShaw in #407
  • scapy: load the layer registry, so the engine actually dissects by @JarryShaw in #409
  • docs: prune the Help Wanted page, fix the uninstallable docs extra, quiet 5 Sphinx warnings by @JarryShaw in #408
  • docs: resolve ambiguous cross-references and the five autodoc signature failures by @JarryShaw in #416
  • examples: add a Dockerised engine benchmark covering every supported Python version by @JarryShaw in #410
  • chore: mark vermin's guarded-import false positives, close the engine handle by @JarryShaw in #411
  • interface: add the three missing engine constants, and guard dpkt/scapy tracing by @JarryShaw in #412
  • docs: fix 45 places where the documentation contradicts the code by @JarryShaw in #413
  • protocols: implement NGAP over SCTP, decoding aligned PER through pycrate by @JarryShaw in #417
  • docs: record the protocol, reassembly and crypto gaps on the Help Wanted page by @JarryShaw in #419
  • protocols: stop next-layer dispatch writing to shared registries, and fix two transport defects by @JarryShaw in #426
  • perf: cut extraction time by ~46% on an HTTP capture, with byte-identical output by @JarryShaw in #420
  • reassembly: make the four IPv6 adapters agree, and analyse datagram payloads lazily by @JarryShaw in #424
  • perf: stop the flow dumper re-dissecting every frame, and options being parsed twice by @JarryShaw in #427
  • protocols: stop option, chunk and block dispatch writing to shared registries by @JarryShaw in #428
  • schema: install the generated typed init, so construction runs post_init by @JarryShaw in #430
  • corekit: stop the option and list loops spinning forever on a truncated area (#431) by @JarryShaw in #432
  • protocols: migrate IPv4 option and HIP parameter dispatch to the registry pattern (#429) by @JarryShaw in #434
  • protocols: bind FTP-DATA, HTTP-alt, OSPF, L2TP and the 802.1ad S-Tag, and fix four dispatch defects by @JarryShaw in #436
  • tests: round-trip 258 option codes from the registries, recording the 86 that cannot close the cycle by @JarryShaw in #440
  • foundation: give IP reassembly the RFC timeout, and trace TCP flows bidirectionally by @JarryShaw in #435
  • protocols: drop ipv6_opts' stray SMF_DPD test field, fix two length underflows by @JarryShaw in #449
  • corekit: unpack a ListField's schema items from the configured field by @JarryShaw in #453
  • protocols: real routing type in IPv6-Route diagnostics, and fix HTTP's drained explicit version= buffer by @JarryShaw in #451
  • utilities: let @prepare read length/packet by keyword, not position by @JarryShaw in #450
  • protocols: complete the Mobility Header registry -- all 24 message types, 70 of 71 options, all 4 CGA extensions by @JarryShaw in #437
  • protocols: floor CALIPSO, MPL and REG_INFO's wire-derived lengths at zero by @JarryShaw in #460
  • schema: a forward match consumes nothing, so bill it nothing in len(schema) by @JarryShaw in #456
  • protocols: bind HTTP.make to a real instance, and wrap SETTINGS' item schema by @JarryShaw in #462
  • protocols: size MH's MN-ID option from its subtype, not identifier's Python type by @JarryShaw in #464
  • utilities: reject @prepare's extra arguments, and stop treating a declared zero length as EOF by @JarryShaw in #461
  • protocols: floor four more HIP list-length callbacks at zero by @JarryShaw in #466
  • schema: give every Schema subclass its own ABCMeta cache, and delete the version guard at its cause by @JarryShaw in #471
  • corekit: raise FieldValueError, not a bare ValueError, for a malformed IP field value by @JarryShaw in #470
  • protocols: size HIP NAT_TRAVERSAL_MODE and ESP_TRANSFORM list entries at 16 bits, not 8 by @JarryShaw in #475
  • protocols: reject an int MN-ID identifier for every subtype but IPv6_Address by @JarryShaw in #468
  • corekit: let a nested schema's field callbacks reach the enclosing schema by @JarryShaw in #457
  • corekit: narrow interface fields' post_process return type via isinstance by @JarryShaw in #479
  • schema: let ListField.pack accept the tuple its own data models declare by @JarryShaw in #480
  • mh: reject a wrong-type MN-ID identifier in-library, not as a stdlib leak by @JarryShaw in #481
  • reassembly: record IP fragment overlap conflicts instead of losing them silently by @JarryShaw in #482
  • tests: pin ipv6-route Source Route tuple/list address packing by @JarryShaw in #485
  • tests: close two IP conflict coverage gaps from #482's review by @JarryShaw in #486
  • toolkit(scapy): scale IPv4 fragment offset to octets before reassembly by @JarryShaw in #484
  • reassembly: resolve conflicting TCP overlaps first-write-wins, per RFC 9293 by @JarryShaw in #478
  • fix(ipv6-route): compute Hdr Ext Len in 8-octet units on both sides by @JarryShaw in #489
  • release: bump to 1.5.0b1, the wave-1 beta by @JarryShaw in #488
  • release: bump to 1.5.0b2 to reship the beta PyPI rejected by @JarryShaw in #497

Full Changelog: v1.5.0a1...v1.5.0b2