feat(rendezvous): add UDP punch negotiation fields - #581
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughThe rendezvous protobuf definitions add UDP punch token fields, NAT test nonces, and a registration capability flag. ChangesRendezvous protocol
Estimated code review effort: 1 (Trivial) | ~5 minutes Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
FYI, I’m holding the follow-up client/hbbs PRs for now, since they depend on this protocol change and won’t pass CI against the current hbb_common. |
|
@rustdesk Any updatr? |
Summary
Adds wire-compatible rendezvous protocol fields required for authenticated UDP hole-punch negotiation:
TestNatRequest.nonceTestNatResponse.noncePunchHole.udp_punch_tokenPunchHoleSent.udp_punch_tokenRegisterPk.udp_punch_token_supportedMotivation
The existing UDP candidate path does not have a server-verified completion signal.
These fields allow a rendezvous server to:
All fields are additive protobuf fields. Older clients and servers ignore them and
continue using the existing TCP/relay flow.
Follow-up
Client and hbbs support will be submitted separately after this protocol change.
Summary by CodeRabbit