Skip to content

Commit bb4a741

Browse files
committed
fix test cases
1 parent 4b85621 commit bb4a741

File tree

6 files changed

+132
-21
lines changed

6 files changed

+132
-21
lines changed

go.mod

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ require (
77
git.torproject.org/pluggable-transports/obfs4.git v0.0.0-20181103133120-08f4d470188e
88
github.com/LiamHaworth/go-tproxy v0.0.0-20190726054950-ef7efd7f24ed
99
github.com/Yawning/chacha20 v0.0.0-20170904085104-e3b1f968fc63 // indirect
10-
github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da // indirect
1110
github.com/bifurcation/mint v0.0.0-20181105071958-a14404e9a861 // indirect
1211
github.com/cheekybits/genny v1.0.0 // indirect
1312
github.com/coreos/go-iptables v0.4.5 // indirect
@@ -34,7 +33,7 @@ require (
3433
github.com/onsi/gomega v1.4.3 // indirect
3534
github.com/pkg/errors v0.8.1 // indirect
3635
github.com/ryanuber/go-glob v0.0.0-20170128012129-256dc444b735
37-
github.com/shadowsocks/go-shadowsocks2 v0.0.11
36+
github.com/shadowsocks/go-shadowsocks2 v0.0.12-0.20191211020244-a57bc393e43a
3837
github.com/shadowsocks/shadowsocks-go v0.0.0-20170121203516-97a5c71f80ba
3938
github.com/songgao/water v0.0.0-20190725173103-fd331bda3f4b
4039
github.com/templexxx/cpufeat v0.0.0-20180724012125-cef66df7f161 // indirect

go.sum

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,6 @@ github.com/lucas-clemente/quic-go v0.10.0 h1:xEF+pSHYAOcu+U10Meunf+DTtc8vhQDRqlA
5858
github.com/lucas-clemente/quic-go v0.10.0/go.mod h1:wuD+2XqEx8G9jtwx5ou2BEYBsE+whgQmlj0Vz/77PrY=
5959
github.com/lucas-clemente/quic-go-certificates v0.0.0-20160823095156-d2f86524cced h1:zqEC1GJZFbGZA0tRyNZqRjep92K5fujFtFsu5ZW7Aug=
6060
github.com/lucas-clemente/quic-go-certificates v0.0.0-20160823095156-d2f86524cced/go.mod h1:NCcRLrOTZbzhZvixZLlERbJtDtYsmMw8Jc4vS8Z0g58=
61-
github.com/miekg/dns v1.1.3 h1:1g0r1IvskvgL8rR+AcHzUA+oFmGcQlaIm4IqakufeMM=
62-
github.com/miekg/dns v1.1.3/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
6361
github.com/miekg/dns v1.1.27 h1:aEH/kqUzUxGJ/UHcEKdJY+ugH6WEzsEBBSPa8zuy1aM=
6462
github.com/miekg/dns v1.1.27/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM=
6563
github.com/milosgajdos83/tenus v0.0.0-20190415114537-1f3ed00ae7d8 h1:4WFQEfEJ7zaHYViIVM2Cd6tnQOOhiEHbmQtlcV7aOpc=
@@ -73,8 +71,8 @@ github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=
7371
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
7472
github.com/ryanuber/go-glob v0.0.0-20170128012129-256dc444b735 h1:7YvPJVmEeFHR1Tj9sZEYsmarJEQfMVYpd/Vyy/A8dqE=
7573
github.com/ryanuber/go-glob v0.0.0-20170128012129-256dc444b735/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIHxIXzX/Yc=
76-
github.com/shadowsocks/go-shadowsocks2 v0.0.11 h1:dXloqEhYnZV40jblWTK8kWeC0Eb+dgql4S0tj99e8j0=
77-
github.com/shadowsocks/go-shadowsocks2 v0.0.11/go.mod h1:R+KWaoIwRRhnpw6XV+dZil0XHi64Hc1D7hXUyXTjUzQ=
74+
github.com/shadowsocks/go-shadowsocks2 v0.0.12-0.20191211020244-a57bc393e43a h1:cxYYZwo6iuuJ/5f8x1mHnya7xvSF3cDrOh8Pqh7RZ/w=
75+
github.com/shadowsocks/go-shadowsocks2 v0.0.12-0.20191211020244-a57bc393e43a/go.mod h1:/0aFGbhK8mtOX4J/6kTJsPLZlEs9KnzKoWCOCvjd7vk=
7876
github.com/shadowsocks/shadowsocks-go v0.0.0-20170121203516-97a5c71f80ba h1:tJgNXb3S+RkB4kNPi6N5OmEWe3m+Y3Qs6LUMiNDAONM=
7977
github.com/shadowsocks/shadowsocks-go v0.0.0-20170121203516-97a5c71f80ba/go.mod h1:mttDPaeLm87u74HMrP+n2tugXvIKWcwff/cqSX0lehY=
8078
github.com/songgao/water v0.0.0-20190725173103-fd331bda3f4b h1:+y4hCMc/WKsDbAPsOQZgBSaSZ26uh2afyaWeVg/3s/c=
@@ -88,30 +86,24 @@ github.com/tjfoc/gmsm v1.0.1/go.mod h1:XxO4hdhhrzAd+G4CjDqaOkd0hUzmtPR/d3EiBBMn/
8886
github.com/xtaci/tcpraw v1.2.25 h1:VDlqo0op17JeXBM6e2G9ocCNLOJcw9mZbobMbJjo0vk=
8987
github.com/xtaci/tcpraw v1.2.25/go.mod h1:dKyZ2V75s0cZ7cbgJYdxPvms7af0joIeOyx1GgJQbLk=
9088
golang.org/x/crypto v0.0.0-20181015023909-0c41d7ab0a0e/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
91-
golang.org/x/crypto v0.0.0-20190130090550-b01c7a725664 h1:YbZJ76lQ1BqNhVe7dKTSB67wDrc2VPRR75IyGyyPDX8=
92-
golang.org/x/crypto v0.0.0-20190130090550-b01c7a725664/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
9389
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2 h1:VklqNMn3ovrHsnt90PveolxSbWFaJdECFbxSq0Mqo2M=
9490
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
91+
golang.org/x/crypto v0.0.0-20190426145343-a29dc8fdc734/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
9592
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550 h1:ObdrDkeb4kJdCP557AjRjq69pTHfNouLtWZG7j9rPN8=
9693
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
9794
golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
9895
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
9996
golang.org/x/net v0.0.0-20181011144130-49bb7cea24b1/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
100-
golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3 h1:ulvT7fqt0yHWzpJwI57MezWnYDVpCAYBVuYst/L+fAY=
101-
golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
10297
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3 h1:0GoQqolDA55aaLxZyTzK/Y2ePZzZTUrRacwib7cNsYQ=
10398
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
10499
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
105100
golang.org/x/net v0.0.0-20190923162816-aa69164e4478 h1:l5EDrHhldLYb3ZRHDUhXF7Om7MvYXnkV9/iQNo1lX6g=
106101
golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
107102
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
108-
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4 h1:YUO/7uOKsKeq9UokNS62b8FYywz3ker1l1vDZRCRefw=
109-
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
103+
golang.org/x/sync v0.0.0-20190423024810-112230192c58 h1:8gQV6CLnAEikrhgkHFbMAEhagSSnXWGV915qUMm9mrU=
110104
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
111105
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
112106
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
113-
golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e h1:ZytStCyV048ZqDsWHiYDdoI2Vd4msMcrDECFxS+tL9c=
114-
golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
115107
golang.org/x/sys v0.0.0-20190405154228-4b34438f7a67 h1:1Fzlr8kkDLQwqMP8GxrhptBLqZG/EDpiATneiZHY998=
116108
golang.org/x/sys v0.0.0-20190405154228-4b34438f7a67/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
117109
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=

resolver_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,13 @@ func TestDNSResolver(t *testing.T) {
4545
tc := tc
4646
t.Run(fmt.Sprintf("#%d", i), func(t *testing.T) {
4747
ns := tc.ns
48-
if err := ns.Init(); err != nil {
49-
t.Error(err)
50-
}
5148
t.Log(ns)
5249
r := NewResolver(0, ns)
5350
resolv := r.(*resolver)
5451
resolv.domain = "com"
52+
if err := r.Init(); err != nil {
53+
t.Error("got error:", err)
54+
}
5555
err := dnsResolverRoundtrip(t, r, tc.host)
5656
if err != nil {
5757
if tc.pass {

snapcraft.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: gost
22
type: app
3-
version: '2.9.2'
3+
version: '2.10.0'
44
title: GO Simple Tunnel
55
summary: A simple security tunnel written in golang
66
description: |
@@ -16,7 +16,7 @@ parts:
1616
source: https://github.com/ginuerzh/gost.git
1717
source-subdir: cmd/gost
1818
source-type: git
19-
source-branch: '2.9'
19+
source-branch: '2'
2020
build-packages:
2121
- build-essential
2222
override-build: |

ss.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -403,7 +403,9 @@ func (h *shadowUDPHandler) Handle(conn net.Conn) {
403403
if h.cipher != nil {
404404
pc = h.cipher.PacketConn(pc)
405405
}
406+
log.Logf("[ssu] %s <-> %s", conn.RemoteAddr(), conn.LocalAddr())
406407
h.transportPacket(pc, cc)
408+
log.Logf("[ssu] %s >-< %s", conn.RemoteAddr(), conn.LocalAddr())
407409
return
408410
}
409411

ss_test.go

Lines changed: 120 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -300,6 +300,125 @@ func BenchmarkSSProxyParallel(b *testing.B) {
300300
})
301301
}
302302

303+
var ssuTests = []struct {
304+
clientCipher *url.Userinfo
305+
serverCipher *url.Userinfo
306+
pass bool
307+
}{
308+
{nil, nil, true},
309+
{&url.Userinfo{}, &url.Userinfo{}, true},
310+
{url.User("abc"), url.User("abc"), true},
311+
{url.UserPassword("abc", "def"), url.UserPassword("abc", "def"), true},
312+
313+
{url.User("aes-128-cfb"), url.User("aes-128-cfb"), true},
314+
{url.User("aes-128-cfb"), url.UserPassword("aes-128-cfb", "123456"), false},
315+
{url.UserPassword("aes-128-cfb", "123456"), url.User("aes-128-cfb"), false},
316+
{url.UserPassword("aes-128-cfb", "123456"), url.UserPassword("aes-128-cfb", "abc"), false},
317+
{url.UserPassword("aes-128-cfb", "123456"), url.UserPassword("aes-128-cfb", "123456"), true},
318+
319+
{url.User("aes-192-cfb"), url.User("aes-192-cfb"), true},
320+
{url.User("aes-192-cfb"), url.UserPassword("aes-192-cfb", "123456"), false},
321+
{url.UserPassword("aes-192-cfb", "123456"), url.User("aes-192-cfb"), false},
322+
{url.UserPassword("aes-192-cfb", "123456"), url.UserPassword("aes-192-cfb", "abc"), false},
323+
{url.UserPassword("aes-192-cfb", "123456"), url.UserPassword("aes-192-cfb", "123456"), true},
324+
325+
{url.User("aes-256-cfb"), url.User("aes-256-cfb"), true},
326+
{url.User("aes-256-cfb"), url.UserPassword("aes-256-cfb", "123456"), false},
327+
{url.UserPassword("aes-256-cfb", "123456"), url.User("aes-256-cfb"), false},
328+
{url.UserPassword("aes-256-cfb", "123456"), url.UserPassword("aes-256-cfb", "abc"), false},
329+
{url.UserPassword("aes-256-cfb", "123456"), url.UserPassword("aes-256-cfb", "123456"), true},
330+
331+
{url.User("aes-128-ctr"), url.User("aes-128-ctr"), true},
332+
{url.User("aes-128-ctr"), url.UserPassword("aes-128-ctr", "123456"), false},
333+
{url.UserPassword("aes-128-ctr", "123456"), url.User("aes-128-ctr"), false},
334+
{url.UserPassword("aes-128-ctr", "123456"), url.UserPassword("aes-128-ctr", "abc"), false},
335+
{url.UserPassword("aes-128-ctr", "123456"), url.UserPassword("aes-128-ctr", "123456"), true},
336+
337+
{url.User("aes-192-ctr"), url.User("aes-192-ctr"), true},
338+
{url.User("aes-192-ctr"), url.UserPassword("aes-192-ctr", "123456"), false},
339+
{url.UserPassword("aes-192-ctr", "123456"), url.User("aes-192-ctr"), false},
340+
{url.UserPassword("aes-192-ctr", "123456"), url.UserPassword("aes-192-ctr", "abc"), false},
341+
{url.UserPassword("aes-192-ctr", "123456"), url.UserPassword("aes-192-ctr", "123456"), true},
342+
343+
{url.User("aes-256-ctr"), url.User("aes-256-ctr"), true},
344+
{url.User("aes-256-ctr"), url.UserPassword("aes-256-ctr", "123456"), false},
345+
{url.UserPassword("aes-256-ctr", "123456"), url.User("aes-256-ctr"), false},
346+
{url.UserPassword("aes-256-ctr", "123456"), url.UserPassword("aes-256-ctr", "abc"), false},
347+
{url.UserPassword("aes-256-ctr", "123456"), url.UserPassword("aes-256-ctr", "123456"), true},
348+
349+
{url.User("des-cfb"), url.User("des-cfb"), true},
350+
{url.User("des-cfb"), url.UserPassword("des-cfb", "123456"), false},
351+
{url.UserPassword("des-cfb", "123456"), url.User("des-cfb"), false},
352+
{url.UserPassword("des-cfb", "123456"), url.UserPassword("des-cfb", "abc"), false},
353+
{url.UserPassword("des-cfb", "123456"), url.UserPassword("des-cfb", "123456"), true},
354+
355+
{url.User("bf-cfb"), url.User("bf-cfb"), true},
356+
{url.User("bf-cfb"), url.UserPassword("bf-cfb", "123456"), false},
357+
{url.UserPassword("bf-cfb", "123456"), url.User("bf-cfb"), false},
358+
{url.UserPassword("bf-cfb", "123456"), url.UserPassword("bf-cfb", "abc"), false},
359+
{url.UserPassword("bf-cfb", "123456"), url.UserPassword("bf-cfb", "123456"), true},
360+
361+
{url.User("cast5-cfb"), url.User("cast5-cfb"), true},
362+
{url.User("cast5-cfb"), url.UserPassword("cast5-cfb", "123456"), false},
363+
{url.UserPassword("cast5-cfb", "123456"), url.User("cast5-cfb"), false},
364+
{url.UserPassword("cast5-cfb", "123456"), url.UserPassword("cast5-cfb", "abc"), false},
365+
{url.UserPassword("cast5-cfb", "123456"), url.UserPassword("cast5-cfb", "123456"), true},
366+
367+
{url.User("rc4-md5"), url.User("rc4-md5"), true},
368+
{url.User("rc4-md5"), url.UserPassword("rc4-md5", "123456"), false},
369+
{url.UserPassword("rc4-md5", "123456"), url.User("rc4-md5"), false},
370+
{url.UserPassword("rc4-md5", "123456"), url.UserPassword("rc4-md5", "abc"), false},
371+
{url.UserPassword("rc4-md5", "123456"), url.UserPassword("rc4-md5", "123456"), true},
372+
373+
{url.User("chacha20"), url.User("chacha20"), true},
374+
{url.User("chacha20"), url.UserPassword("chacha20", "123456"), false},
375+
{url.UserPassword("chacha20", "123456"), url.User("chacha20"), false},
376+
{url.UserPassword("chacha20", "123456"), url.UserPassword("chacha20", "abc"), false},
377+
{url.UserPassword("chacha20", "123456"), url.UserPassword("chacha20", "123456"), true},
378+
379+
{url.User("chacha20-ietf"), url.User("chacha20-ietf"), true},
380+
{url.User("chacha20-ietf"), url.UserPassword("chacha20-ietf", "123456"), false},
381+
{url.UserPassword("chacha20-ietf", "123456"), url.User("chacha20-ietf"), false},
382+
{url.UserPassword("chacha20-ietf", "123456"), url.UserPassword("chacha20-ietf", "abc"), false},
383+
{url.UserPassword("chacha20-ietf", "123456"), url.UserPassword("chacha20-ietf", "123456"), true},
384+
385+
{url.User("salsa20"), url.User("salsa20"), true},
386+
{url.User("salsa20"), url.UserPassword("salsa20", "123456"), false},
387+
{url.UserPassword("salsa20", "123456"), url.User("salsa20"), false},
388+
{url.UserPassword("salsa20", "123456"), url.UserPassword("salsa20", "abc"), false},
389+
{url.UserPassword("salsa20", "123456"), url.UserPassword("salsa20", "123456"), true},
390+
391+
{url.User("xchacha20"), url.User("xchacha20"), true},
392+
{url.User("xchacha20"), url.UserPassword("xchacha20", "123456"), false},
393+
{url.UserPassword("xchacha20", "123456"), url.User("xchacha20"), false},
394+
{url.UserPassword("xchacha20", "123456"), url.UserPassword("xchacha20", "abc"), false},
395+
{url.UserPassword("xchacha20", "123456"), url.UserPassword("xchacha20", "123456"), true},
396+
397+
{url.User("CHACHA20-IETF-POLY1305"), url.User("CHACHA20-IETF-POLY1305"), true},
398+
{url.User("CHACHA20-IETF-POLY1305"), url.UserPassword("CHACHA20-IETF-POLY1305", "123456"), false},
399+
{url.UserPassword("CHACHA20-IETF-POLY1305", "123456"), url.User("CHACHA20-IETF-POLY1305"), false},
400+
{url.UserPassword("CHACHA20-IETF-POLY1305", "123456"), url.UserPassword("CHACHA20-IETF-POLY1305", "abc"), false},
401+
{url.UserPassword("CHACHA20-IETF-POLY1305", "123456"), url.UserPassword("CHACHA20-IETF-POLY1305", "123456"), true},
402+
403+
{url.User("AES-128-GCM"), url.User("AES-128-GCM"), true},
404+
{url.User("AES-128-GCM"), url.UserPassword("AES-128-GCM", "123456"), false},
405+
{url.UserPassword("AES-128-GCM", "123456"), url.User("AES-128-GCM"), false},
406+
{url.UserPassword("AES-128-GCM", "123456"), url.UserPassword("AES-128-GCM", "abc"), false},
407+
{url.UserPassword("AES-128-GCM", "123456"), url.UserPassword("AES-128-GCM", "123456"), true},
408+
409+
{url.User("AES-192-GCM"), url.User("AES-192-GCM"), true},
410+
{url.User("AES-192-GCM"), url.UserPassword("AES-192-GCM", "123456"), false},
411+
{url.UserPassword("AES-192-GCM", "123456"), url.User("AES-192-GCM"), false},
412+
{url.UserPassword("AES-192-GCM", "123456"), url.UserPassword("AES-192-GCM", "abc"), false},
413+
{url.UserPassword("AES-192-GCM", "123456"), url.UserPassword("AES-192-GCM", "123456"), true},
414+
415+
{url.User("AES-256-GCM"), url.User("AES-256-GCM"), true},
416+
{url.User("AES-256-GCM"), url.UserPassword("AES-256-GCM", "123456"), false},
417+
{url.UserPassword("AES-256-GCM", "123456"), url.User("AES-256-GCM"), false},
418+
{url.UserPassword("AES-256-GCM", "123456"), url.UserPassword("AES-256-GCM", "abc"), false},
419+
{url.UserPassword("AES-256-GCM", "123456"), url.UserPassword("AES-256-GCM", "123456"), true},
420+
}
421+
303422
func shadowUDPRoundtrip(t *testing.T, host string, data []byte,
304423
clientInfo *url.Userinfo, serverInfo *url.Userinfo) error {
305424
ln, err := UDPListener("localhost:0", nil)
@@ -329,7 +448,7 @@ func TestShadowUDP(t *testing.T) {
329448
sendData := make([]byte, 128)
330449
rand.Read(sendData)
331450

332-
for i, tc := range ssTests {
451+
for i, tc := range ssuTests {
333452
tc := tc
334453
t.Run(fmt.Sprintf("#%d", i), func(t *testing.T) {
335454
udpSrv := newUDPTestServer(udpTestHandler)
@@ -354,7 +473,6 @@ func TestShadowUDP(t *testing.T) {
354473
}
355474
}
356475

357-
// TODO: fix shadowsocks UDP relay benchmark.
358476
func BenchmarkShadowUDP(b *testing.B) {
359477
udpSrv := newUDPTestServer(udpTestHandler)
360478
udpSrv.Start()

0 commit comments

Comments
 (0)