Skip to content

Commit 1596858

Browse files
authored
quicParams config: Better unmarshaling udpHop (#6068)
Fixes #6067 (comment)
1 parent 4951994 commit 1596858

1 file changed

Lines changed: 6 additions & 17 deletions

File tree

infra/conf/transport_internet.go

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -497,8 +497,8 @@ func (b Bandwidth) Bps() (uint64, error) {
497497
}
498498

499499
type UdpHop struct {
500-
PortList json.RawMessage `json:"ports"`
501-
Interval *Int32Range `json:"interval"`
500+
PortList PortList `json:"ports"`
501+
Interval Int32Range `json:"interval"`
502502
}
503503

504504
type Masquerade struct {
@@ -2142,18 +2142,7 @@ func (c *StreamConfig) Build() (*internet.StreamConfig, error) {
21422142
return nil, errors.New("unknown congestion control: ", c.FinalMask.QuicParams.Congestion, ", valid values: reno, bbr, brutal, force-brutal")
21432143
}
21442144

2145-
var hop *PortList
2146-
if err := json.Unmarshal(c.FinalMask.QuicParams.UdpHop.PortList, &hop); err != nil {
2147-
hop = &PortList{}
2148-
}
2149-
2150-
var inertvalMin, inertvalMax int64
2151-
if c.FinalMask.QuicParams.UdpHop.Interval != nil {
2152-
inertvalMin = int64(c.FinalMask.QuicParams.UdpHop.Interval.From)
2153-
inertvalMax = int64(c.FinalMask.QuicParams.UdpHop.Interval.To)
2154-
}
2155-
2156-
if (inertvalMin != 0 && inertvalMin < 5) || (inertvalMax != 0 && inertvalMax < 5) {
2145+
if (c.FinalMask.QuicParams.UdpHop.Interval.From != 0 && c.FinalMask.QuicParams.UdpHop.Interval.From < 5) || (c.FinalMask.QuicParams.UdpHop.Interval.To != 0 && c.FinalMask.QuicParams.UdpHop.Interval.To < 5) {
21572146
return nil, errors.New("Interval must be at least 5")
21582147
}
21592148

@@ -2190,9 +2179,9 @@ func (c *StreamConfig) Build() (*internet.StreamConfig, error) {
21902179
BrutalUp: up,
21912180
BrutalDown: down,
21922181
UdpHop: &internet.UdpHop{
2193-
Ports: hop.Build().Ports(),
2194-
IntervalMin: inertvalMin,
2195-
IntervalMax: inertvalMax,
2182+
Ports: c.FinalMask.QuicParams.UdpHop.PortList.Build().Ports(),
2183+
IntervalMin: int64(c.FinalMask.QuicParams.UdpHop.Interval.From),
2184+
IntervalMax: int64(c.FinalMask.QuicParams.UdpHop.Interval.To),
21962185
},
21972186
InitStreamReceiveWindow: c.FinalMask.QuicParams.InitStreamReceiveWindow,
21982187
MaxStreamReceiveWindow: c.FinalMask.QuicParams.MaxStreamReceiveWindow,

0 commit comments

Comments
 (0)