mirror of
https://github.com/qdm12/gluetun.git
synced 2026-05-07 04:20:12 +02:00
b04529c380
- amneziawg is now a VPN protocol and no longer a Wireguard implementation - Use it with VPN_TYPE=amneziawg - document AMNEZIAWG_* options in Dockerfile - document amneziawg support in readme - separate amneziawg settings and code from wireguard - re-use code from wireguard whenever possible
70 lines
1.4 KiB
Go
70 lines
1.4 KiB
Go
package amneziawg
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
|
|
"github.com/qdm12/gluetun/internal/wireguard"
|
|
)
|
|
|
|
type Settings struct {
|
|
Wireguard wireguard.Settings
|
|
JunkPacketCount uint16
|
|
JunkPacketMin uint16
|
|
JunkPacketMax uint16
|
|
PaddingS1 uint16
|
|
PaddingS2 uint16
|
|
PaddingS3 uint16
|
|
PaddingS4 uint16
|
|
HeaderH1 string
|
|
HeaderH2 string
|
|
HeaderH3 string
|
|
HeaderH4 string
|
|
InitPacketI1 string
|
|
InitPacketI2 string
|
|
InitPacketI3 string
|
|
InitPacketI4 string
|
|
InitPacketI5 string
|
|
}
|
|
|
|
func (s Settings) uapiConfig() string {
|
|
uintFields := map[string]uint16{
|
|
"jc": s.JunkPacketCount,
|
|
"jmin": s.JunkPacketMin,
|
|
"jmax": s.JunkPacketMax,
|
|
"s1": s.PaddingS1,
|
|
"s2": s.PaddingS2,
|
|
"s3": s.PaddingS3,
|
|
"s4": s.PaddingS4,
|
|
}
|
|
stringFields := map[string]string{
|
|
"h1": s.HeaderH1,
|
|
"h2": s.HeaderH2,
|
|
"h3": s.HeaderH3,
|
|
"h4": s.HeaderH4,
|
|
"i1": s.InitPacketI1,
|
|
"i2": s.InitPacketI2,
|
|
"i3": s.InitPacketI3,
|
|
"i4": s.InitPacketI4,
|
|
"i5": s.InitPacketI5,
|
|
}
|
|
lines := make([]string, 0, len(uintFields)+len(stringFields))
|
|
|
|
for key, val := range uintFields {
|
|
lines = append(lines, fmt.Sprintf("%s=%d", key, val))
|
|
}
|
|
|
|
for key, val := range stringFields {
|
|
lines = append(lines, key+"="+val)
|
|
}
|
|
return strings.Join(lines, "\n")
|
|
}
|
|
|
|
func (s *Settings) SetDefaults() {
|
|
s.Wireguard.SetDefaults()
|
|
}
|
|
|
|
func (s *Settings) Check() error {
|
|
return s.Wireguard.Check()
|
|
}
|