[PR #140] Send prelude at endpoint session start #163

Open
opened 2026-10-13 21:04:11 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/amnezia-vpn/amneziawg-go/pull/140
Author: @FrogRocky
Created: 5/23/2026
Status: 🔄 Open

Base: experimental ← Head: experimental-session-init


📝 Commits (2)

  • 756d3dd feat: send prelude once per endpoint session
  • 948c555 fix: store prelude state on endpoints

📊 Changes

14 files changed (+605 additions, -136 deletions)

View changed files

📝 README.md (+5 -4)
📝 conceal/conn_prelude.go (+114 -56)
📝 conceal/udp_datagram_pipeline.go (+22 -11)
📝 conn/bind_std.go (+11 -1)
📝 conn/bind_stream.go (+23 -8)
📝 conn/conceal.go (+2 -2)
📝 conn/conceal_pipeline_test.go (+22 -14)
➕ conn/prelude.go (+62 -0)
📝 conn/udp_conceal_bind.go (+48 -6)
📝 conn/udp_conceal_bind_test.go (+220 -12)
📝 device/device.go (+1 -0)
📝 device/uapi.go (+15 -0)
📝 device/uapi_fallback_test.go (+33 -0)
📝 outline/fallback.go (+27 -22)

📄 Description

Summary

Moves prelude emission from WireGuard initiation detection to endpoint/session state.

  • sends I1-I5 and Jc/Jmin/Jmax once at the beginning of an outbound endpoint session
  • adds PreludeResendInterval / prelude_resend_interval
  • defaults resend interval to 120 seconds
  • treats explicit 0 as disabling timer-based resend
  • resets endpoint prelude state on ClearSrc and new outbound TCP dial
  • keeps TCP prelude outbound-only for locally initiated sessions
  • updates tests and README docs for the new behavior

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/amnezia-vpn/amneziawg-go/pull/140 **Author:** [@FrogRocky](https://github.com/FrogRocky) **Created:** 5/23/2026 **Status:** 🔄 Open **Base:** `experimental` ← **Head:** `experimental-session-init` --- ### 📝 Commits (2) - [`756d3dd`](https://github.com/amnezia-vpn/amneziawg-go/commit/756d3dd6bd9e27587f93c5b8236cc58a9d6ed198) feat: send prelude once per endpoint session - [`948c555`](https://github.com/amnezia-vpn/amneziawg-go/commit/948c555794890f6447a26efb8421e219d75db3f6) fix: store prelude state on endpoints ### 📊 Changes **14 files changed** (+605 additions, -136 deletions) <details> <summary>View changed files</summary> 📝 `README.md` (+5 -4) 📝 `conceal/conn_prelude.go` (+114 -56) 📝 `conceal/udp_datagram_pipeline.go` (+22 -11) 📝 `conn/bind_std.go` (+11 -1) 📝 `conn/bind_stream.go` (+23 -8) 📝 `conn/conceal.go` (+2 -2) 📝 `conn/conceal_pipeline_test.go` (+22 -14) ➕ `conn/prelude.go` (+62 -0) 📝 `conn/udp_conceal_bind.go` (+48 -6) 📝 `conn/udp_conceal_bind_test.go` (+220 -12) 📝 `device/device.go` (+1 -0) 📝 `device/uapi.go` (+15 -0) 📝 `device/uapi_fallback_test.go` (+33 -0) 📝 `outline/fallback.go` (+27 -22) </details> ### 📄 Description ## Summary Moves prelude emission from WireGuard initiation detection to endpoint/session state. - sends `I1-I5` and `Jc/Jmin/Jmax` once at the beginning of an outbound endpoint session - adds `PreludeResendInterval` / `prelude_resend_interval` - defaults resend interval to 120 seconds - treats explicit `0` as disabling timer-based resend - resets endpoint prelude state on `ClearSrc` and new outbound TCP dial - keeps TCP prelude outbound-only for locally initiated sessions - updates tests and README docs for the new behavior --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Sign in to join this conversation.
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
amnezia-vpn/amneziawg-go#163
No description provided.