Add openvpn and openconnect

This commit is contained in:
世界
2026-07-17 16:21:03 +08:00
parent cd3ee75769
commit 46f00de9aa
66 changed files with 12499 additions and 390 deletions
+28
View File
@@ -0,0 +1,28 @@
package openvpn
import (
"syscall"
"github.com/sagernet/sing/common"
"golang.org/x/sys/unix"
)
const openVPNUDPSocketBufferSize = 7 << 20
func tuneOpenVPNUDPSocket(connection any) {
syscallConnection, loaded := common.Cast[syscall.Conn](connection)
if !loaded {
return
}
rawConnection, err := syscallConnection.SyscallConn()
if err != nil {
return
}
_ = rawConnection.Control(func(fd uintptr) {
_ = unix.SetsockoptInt(int(fd), unix.SOL_SOCKET, unix.SO_RCVBUF, openVPNUDPSocketBufferSize)
_ = unix.SetsockoptInt(int(fd), unix.SOL_SOCKET, unix.SO_SNDBUF, openVPNUDPSocketBufferSize)
_ = unix.SetsockoptInt(int(fd), unix.SOL_SOCKET, unix.SO_RCVBUFFORCE, openVPNUDPSocketBufferSize)
_ = unix.SetsockoptInt(int(fd), unix.SOL_SOCKET, unix.SO_SNDBUFFORCE, openVPNUDPSocketBufferSize)
})
}