Skip to content

v1.3.0 - ICMPv6 Support

Latest

Choose a tag to compare

@ariary ariary released this 15 May 09:15
7c6e1d7

What's New

ICMPv6 Support (new feature)

  • Auto-detection: pass an IPv6 address and QueenSono automatically uses ICMPv6 (protocol 58) — no extra flags needed
  • Works with all existing modes: send/receive, echo reply, integrity check
  • Listen address auto-adapts (e.g. 0.0.0.0 swaps to :: when the remote is IPv6)

Usage

# IPv6 — just works
qssender send --remote fe80::1 "hello"
qsreceiver receive --listen ::

# IPv4 — unchanged
qssender send --remote 192.168.1.1 "hello"
qsreceiver receive --listen 0.0.0.0

Implementation

  • New Proto config struct centralizes IPv4/IPv6 differences (network string, protocol number, ICMP type constants)
  • DetectProto(addr) inspects the IP address format and returns the correct config
  • ResolveListenAddr adapts wildcard listen addresses to match the detected protocol
  • All hardcoded IPv4 references removed from send.go, receive.go, reply.go
  • No public API changes — fully backward compatible

Testing

  • 20 new unit tests for protocol detection and address resolution
  • Table-driven tests with mutation testing validation (100% kill rate on protocol.go)
  • All 38 tests pass, go vet clean

Closes #9