mirror of
https://github.com/SagerNet/sing-box.git
synced 2026-04-14 20:58:33 +10:00
50 lines
1.9 KiB
Go
50 lines
1.9 KiB
Go
package hysteria
|
|
|
|
import (
|
|
"github.com/sagernet/sing-box/option"
|
|
qtls "github.com/sagernet/sing-quic"
|
|
)
|
|
|
|
func buildBaseQUICOptions(options option.QUICOptions) qtls.QUICOptions {
|
|
return qtls.QUICOptions{
|
|
IdleTimeout: options.IdleTimeout.Build(),
|
|
KeepAlivePeriod: options.KeepAlivePeriod.Build(),
|
|
StreamReceiveWindow: options.StreamReceiveWindow.Value(),
|
|
ConnectionReceiveWindow: options.ConnectionReceiveWindow.Value(),
|
|
MaxConcurrentStreams: options.MaxConcurrentStreams,
|
|
InitialPacketSize: options.InitialPacketSize,
|
|
DisablePathMTUDiscovery: options.DisablePathMTUDiscovery,
|
|
}
|
|
}
|
|
|
|
func buildInboundQUICOptions(options option.HysteriaInboundOptions) qtls.QUICOptions {
|
|
quicOptions := buildBaseQUICOptions(options.QUICOptions)
|
|
if quicOptions.ConnectionReceiveWindow == 0 {
|
|
quicOptions.ConnectionReceiveWindow = options.ReceiveWindowConn //nolint:staticcheck
|
|
}
|
|
if quicOptions.StreamReceiveWindow == 0 {
|
|
quicOptions.StreamReceiveWindow = options.ReceiveWindowClient //nolint:staticcheck
|
|
}
|
|
if quicOptions.MaxConcurrentStreams == 0 {
|
|
quicOptions.MaxConcurrentStreams = options.MaxConnClient //nolint:staticcheck
|
|
}
|
|
if !quicOptions.DisablePathMTUDiscovery {
|
|
quicOptions.DisablePathMTUDiscovery = options.DisableMTUDiscovery //nolint:staticcheck
|
|
}
|
|
return quicOptions
|
|
}
|
|
|
|
func buildOutboundQUICOptions(options option.HysteriaOutboundOptions) qtls.QUICOptions {
|
|
quicOptions := buildBaseQUICOptions(options.QUICOptions)
|
|
if quicOptions.ConnectionReceiveWindow == 0 {
|
|
quicOptions.ConnectionReceiveWindow = options.ReceiveWindowConn //nolint:staticcheck
|
|
}
|
|
if quicOptions.StreamReceiveWindow == 0 {
|
|
quicOptions.StreamReceiveWindow = options.ReceiveWindow //nolint:staticcheck
|
|
}
|
|
if !quicOptions.DisablePathMTUDiscovery {
|
|
quicOptions.DisablePathMTUDiscovery = options.DisableMTUDiscovery //nolint:staticcheck
|
|
}
|
|
return quicOptions
|
|
}
|