Skip to content

v2.1.0 — TCP API, dual-path WG handshake

Latest

Choose a tag to compare

@CamM2325 CamM2325 released this 16 Mar 00:11
· 3 commits to main since this release

What's New

TCP Socket API

  • microlink_tcp_connect() / microlink_tcp_send() / microlink_tcp_recv() / microlink_tcp_close()
  • TCP sockets route through the WireGuard tunnel by binding to the VPN IP internally
  • Auto-triggers WG handshake and waits up to 30s for tunnel establishment
  • Enables use cases like GPS trackers sending to Traccar over Tailscale

Dual-Path WireGuard Handshake

  • Handshake initiation now sent via both DERP relay AND direct UDP simultaneously
  • Wakes fully trimmed peers (idle >5 min) without waiting for DERP round-trip
  • Reduces cold-start connection time significantly

Reliability Fixes

  • Zombie peer fix: wireguardif_connect() no longer leaves active=true, preventing infinite 5-second handshake retries
  • EarlyNoise slow-path: Handles proactive server frames arriving in separate TCP segments (common on cellular PPP)
  • H2 END_STREAM early-break: do_register() scans for END_STREAM flag to break early instead of blocking 60s
  • Enhanced WireGuard diagnostics: Detailed logging for handshake completion and periodic initiation

Example Updates

  • cellular_connect example now supports UDP/TCP transport selection via menuconfig
  • UDP remains the default transport