@@ -87,26 +87,26 @@ type WireGuardPeerOption struct {
8787}
8888
8989type AmneziaWGOption struct {
90- JC int `proxy:"jc,omitempty"`
91- JMin int `proxy:"jmin,omitempty"`
92- JMax int `proxy:"jmax,omitempty"`
93- S1 int `proxy:"s1,omitempty"`
94- S2 int `proxy:"s2,omitempty"`
95- H1 uint32 `proxy:"h1 ,omitempty"`
96- H2 uint32 `proxy:"h2 ,omitempty"`
97- H3 uint32 `proxy:"h3 ,omitempty"`
98- H4 uint32 `proxy:"h4 ,omitempty"`
99-
100- // AmneziaWG v1.5
101- I1 string `proxy:"i1,omitempty"`
102- I2 string `proxy:"i2,omitempty"`
103- I3 string `proxy:"i3,omitempty"`
104- I4 string `proxy:"i4,omitempty"`
105- I5 string `proxy:"i5,omitempty"`
106- J1 string `proxy:"j1,omitempty"`
107- J2 string `proxy:"j2,omitempty"`
108- J3 string `proxy:"j3,omitempty"`
109- Itime int64 `proxy:"itime,omitempty"`
90+ JC int `proxy:"jc,omitempty"`
91+ JMin int `proxy:"jmin,omitempty"`
92+ JMax int `proxy:"jmax,omitempty"`
93+ S1 int `proxy:"s1,omitempty"`
94+ S2 int `proxy:"s2,omitempty"`
95+ S3 int `proxy:"s3 ,omitempty"` // AmneziaWG v1.5 and v2
96+ S4 int `proxy:"s4 ,omitempty"` // AmneziaWG v1.5 and v2
97+ H1 string `proxy:"h1 ,omitempty"` // In AmneziaWG v1.x, it was uint32, but our WeaklyTypedInput can handle this situation
98+ H2 string `proxy:"h2 ,omitempty"` // In AmneziaWG v1.x, it was uint32, but our WeaklyTypedInput can handle this situation
99+ H3 string `proxy:"h3,omitempty"` // In AmneziaWG v1.x, it was uint32, but our WeaklyTypedInput can handle this situation
100+ H4 string `proxy:"h4,omitempty"` // In AmneziaWG v1.x, it was uint32, but our WeaklyTypedInput can handle this situation
101+ I1 string `proxy:"i1,omitempty"` // AmneziaWG v1.5 and v2
102+ I2 string `proxy:"i2,omitempty"` // AmneziaWG v1.5 and v2
103+ I3 string `proxy:"i3,omitempty"` // AmneziaWG v1.5 and v2
104+ I4 string `proxy:"i4,omitempty"` // AmneziaWG v1.5 and v2
105+ I5 string `proxy:"i5,omitempty"` // AmneziaWG v1.5 and v2
106+ J1 string `proxy:"j1,omitempty"` // AmneziaWG v1.5 only (removed in v2)
107+ J2 string `proxy:"j2,omitempty"` // AmneziaWG v1.5 only (removed in v2)
108+ J3 string `proxy:"j3,omitempty"` // AmneziaWG v1.5 only (removed in v2)
109+ Itime int64 `proxy:"itime,omitempty"` // AmneziaWG v1.5 only (removed in v2)
110110}
111111
112112type wgSingErrorHandler struct {
@@ -412,17 +412,23 @@ func (w *WireGuard) genIpcConf(ctx context.Context, updateOnly bool) (string, er
412412 if w .option .AmneziaWGOption .S2 != 0 {
413413 ipcConf += "s2=" + strconv .Itoa (w .option .AmneziaWGOption .S2 ) + "\n "
414414 }
415- if w .option .AmneziaWGOption .H1 != 0 {
416- ipcConf += "h1 =" + strconv .FormatUint ( uint64 ( w .option .AmneziaWGOption .H1 ), 10 ) + "\n "
415+ if w .option .AmneziaWGOption .S3 != 0 {
416+ ipcConf += "s3 =" + strconv .Itoa ( w .option .AmneziaWGOption .S3 ) + "\n "
417417 }
418- if w .option .AmneziaWGOption .H2 != 0 {
419- ipcConf += "h2 =" + strconv .FormatUint ( uint64 ( w .option .AmneziaWGOption .H2 ), 10 ) + "\n "
418+ if w .option .AmneziaWGOption .S4 != 0 {
419+ ipcConf += "s4 =" + strconv .Itoa ( w .option .AmneziaWGOption .S4 ) + "\n "
420420 }
421- if w .option .AmneziaWGOption .H3 != 0 {
422- ipcConf += "h3 =" + strconv . FormatUint ( uint64 ( w .option .AmneziaWGOption .H3 ), 10 ) + "\n "
421+ if w .option .AmneziaWGOption .H1 != "" {
422+ ipcConf += "h1 =" + w .option .AmneziaWGOption .H1 + "\n "
423423 }
424- if w .option .AmneziaWGOption .H4 != 0 {
425- ipcConf += "h4=" + strconv .FormatUint (uint64 (w .option .AmneziaWGOption .H4 ), 10 ) + "\n "
424+ if w .option .AmneziaWGOption .H2 != "" {
425+ ipcConf += "h2=" + w .option .AmneziaWGOption .H2 + "\n "
426+ }
427+ if w .option .AmneziaWGOption .H3 != "" {
428+ ipcConf += "h3=" + w .option .AmneziaWGOption .H3 + "\n "
429+ }
430+ if w .option .AmneziaWGOption .H4 != "" {
431+ ipcConf += "h4=" + w .option .AmneziaWGOption .H4 + "\n "
426432 }
427433 if w .option .AmneziaWGOption .I1 != "" {
428434 ipcConf += "i1=" + w .option .AmneziaWGOption .I1 + "\n "
0 commit comments