3-way merge of amnezia-vpn/amneziawg-go (AWG2, I1-I5 CPS + S4 keepalive) into sagernet/wireguard-go@506b763185 (the base sing-box uses). Keeps sagernet's sing-box-compat additions (Send offset contract, InputPacket, conn reserved/ control) and neutralizes the encapsulating headroom (MessageEncapsulatingTransportSize=0) so obfuscation composes cleanly. Obfuscation lives in device/ (obf*.go, magic-header.go new files + send/receive/device/uapi grafts); conn/tun/ipc kept pure sagernet. LIVE-VALIDATED: handshake + keepalive + traffic against a real AmneziaWG 2.0 server.
21 lines
685 B
Go
21 lines
685 B
Go
/* SPDX-License-Identifier: MIT
|
|
*
|
|
* Copyright (C) 2017-2025 WireGuard LLC. All Rights Reserved.
|
|
*/
|
|
|
|
package conn
|
|
|
|
import (
|
|
"github.com/sagernet/sing/common/control"
|
|
)
|
|
|
|
// UDP socket read/write buffer size (7MB). The value of 7MB is chosen as it is
|
|
// the max supported by a default configuration of macOS. Some platforms will
|
|
// silently clamp the value to other maximums, such as linux clamping to
|
|
// net.core.{r,w}mem_max (see _linux.go for additional implementation that works
|
|
// around this limitation)
|
|
const socketBufferSize = 7 << 20
|
|
|
|
// controlFns is a list of functions that are called from the listen config
|
|
// that can apply socket options.
|
|
var controlFns []control.Func
|