Skip to content

feat: packet processor - #2

Draft
ii64 wants to merge 20 commits into
mainfrom
feat/packet-processor
Draft

ii64 wants to merge 20 commits into
mainfrom
feat/packet-processor

Conversation

@ii64

@ii64 ii64 commented Jun 15, 2026

Copy link
Copy Markdown
Member

No description provided.

ii64 added 20 commits June 15, 2026 06:36
- Define PacketProcessor trait with header_size, write_outgoing, validate_incoming
- Add packet_processor field to ENetHost C struct and enet_host_create
- Add packet_processor to HostSettings and Host::new wiring
- Initialize and cleanup correctly alongside compressor
- Add local_port field to ENetHost and enet_host_create
- Add local_port() to Socket trait and UdpSocket impl
- Hook validate_incoming into receive path after peer lookup
- Skip processor header bytes before parsing ENet header
- Send side: write_outgoing called before ENet header, packet_size includes proc header
- Receive side: skip processor bytes, validate_incoming after peer lookup
- Fragment size: subtract processor header_size from mtu in enet_peer_send
- Fix validate_incoming signature to use u16 matching C struct field
… params

Matches the compressor pattern — avoids too_many_arguments clippy warning.
- port() returns Option<u16> -- None for unit address types
- Send-side write_outgoing uses the destination peer's port (not local port)
- This allows proper port-based integrity validation
- Clear proc_header_ptr after decompression so checksum uses received_data
- Revert complex proc header copy in decompressed path
- Add tests: compressor+checksum, compressor+processor, all-three-combo
- Known: compressor+checksum+processor still fails (pre-existing checksum vs decompress ordering)
…mbos

- compressor+checksum passes (small packets don't compress)
- compressor+processor passes
- checksum+processor passes
- all three: #[ignore] (pre-existing neko-net ordering: checksum
  modifies buffer that decompression later reads)
- Don't clear proc_header_ptr after decompression
- Checksum uses [proc_header][received_data] as two buffers
- Matches send-side ordering where checksum runs over uncompressed
  data before compression replaces the payload buffers
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant