Skip to content

fix(engines): the dpkt engine passes a Decimal timestamp for nanosecond PCAP #1501

Closed

Description

@JarryShaw

Describe the bug
For a nanosecond PCAP the dpkt engine hands reassembly and traceflow a Decimal timestamp, while the default and scapy engines hand a float.

Reproduction
On examples/captures/big_endian_nanosecond.pcap, reassembly receives Decimal('1500000000.123456789') from dpkt, and 1500000000.1234567 from the default and scapy engines.

Expected behavior
The same type from every engine.

System information
Linux, CPython 3.14.7, main at 00aa1fc90.

Additional context
pcapkit/foundation/engines/dpkt.py:309 passes dpkt's value through; pcapkit/toolkit/pcap.py:73 converts to float for the default engine.

Found by the #1202 foundation round-trip slice; reproduced on main.

Activity

  1. added
    fixPull requests that fix a defect (fix: subject prefix)
    pendingAccepted and unstarted - nobody is on it and nothing blocks it
    on Oct 9, 2026
  2. JarryShaw commented on Oct 9, 2026

    @JarryShaw
    OwnerAuthor

    Blocked until the #1202 foundation-slice test PR (branch test/1202-foundation-roundtrips) merges. That PR adds this defect's Gap row, and the fix must delete the row.

  3. added
    blockedDeferred pending another issue or decision; see the last comment for what unblocks it
    and removed
    pendingAccepted and unstarted - nobody is on it and nothing blocks it
    on Oct 9, 2026
  4. JarryShaw commented on Oct 9, 2026

    @JarryShaw
    OwnerAuthor

    Still blocked, now on #1511 instead of #1508. #1508 has merged, but #1511 is editing the same file this fix needs. Unblocks when #1511 merges.

  5. JarryShaw commented on Oct 10, 2026

    @JarryShaw
    OwnerAuthor

    Unblocked: #1511 has merged (2d088a745). A worker is on this together with #1520, since both fixes are in pcapkit/foundation/engines/dpkt.py. One PR will close both and delete both Gap rows.

  6. added
    wipWork in flight - a covering PR is open or an agent is actively on it
    and removed
    blockedDeferred pending another issue or decision; see the last comment for what unblocks it
    on Oct 10, 2026
  7. moved this from Blocked to WIP in PyPCAPKiton Oct 10, 2026
  8. removed
    wipWork in flight - a covering PR is open or an agent is actively on it
    on Oct 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    fixPull requests that fix a defect (fix: subject prefix)

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions