Skip to content

Commit 0604ce6

Browse files
committed
Updated packages:
* migrated to latest go-logger * fixed up code to use the new logger APIs * fixed up test code
1 parent 4fc3ea8 commit 0604ce6

File tree

10 files changed

+72
-73
lines changed

10 files changed

+72
-73
lines changed

go.mod

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,28 @@
11
module github.com/opencoff/go-tunnel
22

3-
go 1.21.1
3+
go 1.23.4
44

55
require (
6-
github.com/opencoff/go-logger v0.5.1
6+
github.com/opencoff/go-logger v0.7.3
77
github.com/opencoff/go-ratelimit v0.9.0
8-
github.com/opencoff/go-utils v0.9.5
8+
github.com/opencoff/go-utils v1.0.0
99
github.com/opencoff/pflag v1.0.6-sh1
10-
github.com/quic-go/quic-go v0.44.0
10+
github.com/quic-go/quic-go v0.48.2
1111
gopkg.in/yaml.v2 v2.4.0
1212
)
1313

1414
require (
1515
github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 // indirect
1616
github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38 // indirect
17-
github.com/kr/pretty v0.3.1 // indirect
1817
github.com/onsi/ginkgo/v2 v2.9.5 // indirect
19-
github.com/opencoff/go-mmap v0.1.2 // indirect
2018
github.com/opencoff/golang-lru v0.6.0 // indirect
2119
go.uber.org/mock v0.4.0 // indirect
22-
golang.org/x/crypto v0.23.0 // indirect
20+
golang.org/x/crypto v0.26.0 // indirect
2321
golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842 // indirect
2422
golang.org/x/mod v0.17.0 // indirect
25-
golang.org/x/net v0.25.0 // indirect
26-
golang.org/x/sys v0.20.0 // indirect
27-
golang.org/x/term v0.20.0 // indirect
23+
golang.org/x/net v0.28.0 // indirect
24+
golang.org/x/sys v0.23.0 // indirect
25+
golang.org/x/term v0.23.0 // indirect
2826
golang.org/x/time v0.5.0 // indirect
29-
golang.org/x/tools v0.21.0 // indirect
27+
golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect
3028
)

go.sum

Lines changed: 25 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
22
github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
33
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
4-
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
54
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
65
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
76
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@@ -16,65 +15,56 @@ github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN
1615
github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38 h1:yAJXTCF9TqKcTiHJAE8dj7HMvPfh66eeA2JYW7eFpSE=
1716
github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
1817
github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
19-
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
20-
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
21-
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
22-
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
2318
github.com/onsi/ginkgo/v2 v2.9.5 h1:+6Hr4uxzP4XIUyAkg61dWBw8lb/gc4/X5luuxN/EC+Q=
2419
github.com/onsi/ginkgo/v2 v2.9.5/go.mod h1:tvAoo1QUJwNEU2ITftXTpR7R1RbCzoZUOs3RonqW57k=
2520
github.com/onsi/gomega v1.27.6 h1:ENqfyGeS5AX/rlXDd/ETokDz93u0YufY1Pgxuy/PvWE=
2621
github.com/onsi/gomega v1.27.6/go.mod h1:PIQNjfQwkP3aQAH7lf7j87O/5FiNr+ZR8+ipb+qQlhg=
27-
github.com/opencoff/go-logger v0.5.1 h1:ljM8pJvcrd49TZdgs5Fn8MHfGd/46BoqZuyJ9XcUPPI=
28-
github.com/opencoff/go-logger v0.5.1/go.mod h1:0uZokzKt+uCJkbz12vSoChasSJoLc2aNuCS0A/U7Dqs=
29-
github.com/opencoff/go-mmap v0.1.2 h1:2yrYleq0x9cBruDRTafs7GZt4tCYmsUlvyN77HnY9hA=
30-
github.com/opencoff/go-mmap v0.1.2/go.mod h1:+UjRnKQ3l5dLqSNAczz7zKI8LJ7mBhJhaSqU4S91tFs=
22+
github.com/opencoff/go-logger v0.7.3 h1:UQMhKfeICaBsuWzyV/S+PBTssX0XFB9cVuknksxyLCg=
23+
github.com/opencoff/go-logger v0.7.3/go.mod h1:dhRnw/605cByI6vleNQFb81ADuw3DH390BtkHoGY/uo=
3124
github.com/opencoff/go-ratelimit v0.9.0 h1:njeetVxXXz8PEhwIk4oeNpj+1kDrUbxta7y9VSMQMeE=
3225
github.com/opencoff/go-ratelimit v0.9.0/go.mod h1:CZOjkRlhRo07XJt81kMF0NfOP7cYTfhZG1zPU5AAK78=
33-
github.com/opencoff/go-utils v0.9.5 h1:ASh8PoNZbPi0AOxbei+TlkxGYylOyC9+SI/L7J8tfkE=
34-
github.com/opencoff/go-utils v0.9.5/go.mod h1:nNx572v21m3AkY9JomSXUG8iruY56Fm2zceNKNJDJaU=
26+
github.com/opencoff/go-utils v1.0.0 h1:hgAjR95JBAnSitK3HzGDtpcGHrcciy2gerlWAiEuOJo=
27+
github.com/opencoff/go-utils v1.0.0/go.mod h1:nNx572v21m3AkY9JomSXUG8iruY56Fm2zceNKNJDJaU=
3528
github.com/opencoff/golang-lru v0.6.0 h1:e5jyAHA4AJbohh8mmPB6JpTvZMVrnh3z5GFAqTADVm8=
3629
github.com/opencoff/golang-lru v0.6.0/go.mod h1:Ll98eBFICVmenoj+uJfH+ReFgDMD+nuK9VshgMwDs80=
3730
github.com/opencoff/pflag v1.0.6-sh1 h1:6RO8GgnpH928yu6earGDD01FnFT//bDJ1hCovcVVqY4=
3831
github.com/opencoff/pflag v1.0.6-sh1/go.mod h1:2bXtpAD/5h/2LarkbsRwiUxqnvB1nZBzn9Xjad1P41A=
39-
github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
4032
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
4133
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
42-
github.com/quic-go/quic-go v0.44.0 h1:So5wOr7jyO4vzL2sd8/pD9Kesciv91zSk8BoFngItQ0=
43-
github.com/quic-go/quic-go v0.44.0/go.mod h1:z4cx/9Ny9UtGITIPzmPTXh1ULfOyWh4qGQlpnPcWmek=
44-
github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8=
45-
github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
34+
github.com/quic-go/quic-go v0.48.2 h1:wsKXZPeGWpMpCGSWqOcqpW2wZYic/8T3aqiOID0/KWE=
35+
github.com/quic-go/quic-go v0.48.2/go.mod h1:yBgs3rWBOADpga7F+jJsb6Ybg1LSYiQvwWlLX+/6HMs=
4636
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
47-
github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0=
4837
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
38+
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
39+
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
4940
go.uber.org/mock v0.4.0 h1:VcM4ZOtdbR4f6VXfiOpwpVJDL6lCReaZ6mw31wqh7KU=
5041
go.uber.org/mock v0.4.0/go.mod h1:a6FSlNadKUHUa9IP5Vyt1zh4fC7uAwxMutEAscFbkZc=
51-
golang.org/x/crypto v0.23.0 h1:dIJU/v2J8Mdglj/8rJ6UUOM3Zc9zLZxVZwwxMooUSAI=
52-
golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8=
42+
golang.org/x/crypto v0.26.0 h1:RrRspgV4mU+YwB4FYnuBoKsUapNIL5cohGAmSH3azsw=
43+
golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54=
5344
golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842 h1:vr/HnozRka3pE4EsMEg1lgkXJkTFJCVUX+S/ZT6wYzM=
5445
golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842/go.mod h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc=
5546
golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA=
5647
golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
57-
golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac=
58-
golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM=
59-
golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M=
60-
golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
48+
golang.org/x/net v0.28.0 h1:a9JDOJc5GMUJ0+UDqmLT86WiEy7iWyIhz8gz8E4e5hE=
49+
golang.org/x/net v0.28.0/go.mod h1:yqtgsTWOOnlGLG9GFRrK3++bGOUEkNBoHZc8MEDWPNg=
50+
golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ=
51+
golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
6152
golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
62-
golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y=
63-
golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
64-
golang.org/x/term v0.20.0 h1:VnkxpohqXaOBYJtBmEppKUG6mXpi+4O6purfc2+sMhw=
65-
golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY=
66-
golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk=
67-
golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
53+
golang.org/x/sys v0.23.0 h1:YfKFowiIMvtgl1UERQoTPPToxltDeZfbj4H7dVUCwmM=
54+
golang.org/x/sys v0.23.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
55+
golang.org/x/term v0.23.0 h1:F6D4vR+EHoL9/sWAWgAR1H2DcHr4PareCbAaCo1RpuU=
56+
golang.org/x/term v0.23.0/go.mod h1:DgV24QBUrK6jhZXl+20l6UWznPlwAHm1Q1mGHtydmSk=
57+
golang.org/x/text v0.17.0 h1:XtiM5bkSOt+ewxlOE/aE/AKEHibwj/6gvWMl9Rsh0Qc=
58+
golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY=
6859
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
6960
golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk=
7061
golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
71-
golang.org/x/tools v0.21.0 h1:qc0xYgIbsSDt9EyWz05J5wfa7LOVW0YTLOXrqdLAWIw=
72-
golang.org/x/tools v0.21.0/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk=
73-
google.golang.org/protobuf v1.28.0 h1:w43yiav+6bVFTBQFZX0r7ipe9JQ1QsbMgHwbBziscLw=
74-
google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
62+
golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d h1:vU5i/LfpvrRCpgM/VPfJLg5KjxD3E+hfT1SH+d9zLwg=
63+
golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk=
64+
google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI=
65+
google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
66+
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
7567
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
76-
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
77-
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
7868
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
7969
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
8070
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

src/main.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ func main() {
9595

9696
// We want microsecond timestamps and debug logs to have short
9797
// filenames
98-
const logflags int = L.Ldate | L.Ltime | L.Lshortfile | L.Lmicroseconds
98+
const logflags int = L.Ldate | L.Ltime | L.Lfileloc | L.Lmicroseconds
9999
var logf string = cfg.Logging
100100

101101
if debug {
@@ -108,9 +108,10 @@ func main() {
108108
die("Can't create logger: %s", err)
109109
}
110110

111-
err = log.EnableRotation(00, 01, 00, 7)
112-
if err != nil {
113-
warn("Can't enable log rotation: %s", err)
111+
if rlog, ok := log.(L.RotatableLogger); ok {
112+
if err := rlog.EnableRotation(00, 01, 00, 7); err != nil {
113+
warn("Can't enable log rotation: %s", err)
114+
}
114115
}
115116

116117
log.Info("gotun - %s [%s - built on %s] starting up (logging at %s)...",
@@ -165,7 +166,7 @@ func main() {
165166
}
166167

167168
// Profiler
168-
func initProfilers(log *L.Logger, dbdir string) {
169+
func initProfilers(log L.Logger, dbdir string) {
169170
cpuf := fmt.Sprintf("%s/cpu.cprof", dbdir)
170171
memf := fmt.Sprintf("%s/mem.mprof", dbdir)
171172

src/quic_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -314,7 +314,7 @@ func TestTcpToQuicAuth(t *testing.T) {
314314
// we want outgoing connect to be quic
315315
lc.Connect.Quic = true
316316

317-
cfg.Dump(log)
317+
cfg.Dump(&logWriter{t})
318318

319319
cert, err := pki.ServerCert("server.name", lc.Addr)
320320
assert(err == nil, "can't create server cert: %s", err)

src/quicdial.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ package main
1111
import (
1212
"context"
1313
"fmt"
14-
"github.com/quic-go/quic-go"
1514
L "github.com/opencoff/go-logger"
15+
"github.com/quic-go/quic-go"
1616
"net"
1717
"sync"
1818
"time"
@@ -23,7 +23,7 @@ type quicDialer struct {
2323

2424
r *Server
2525

26-
log *L.Logger
26+
log L.Logger
2727

2828
// map of destinations to qSession
2929
dest map[string]quic.Connection
@@ -36,10 +36,10 @@ type qConn struct {
3636
// Link back to quic session for this stream
3737
s quic.Connection
3838

39-
log *L.Logger
39+
log L.Logger
4040
}
4141

42-
func newQuicDialer(r *Server, log *L.Logger) (Dialer, error) {
42+
func newQuicDialer(r *Server, log L.Logger) (Dialer, error) {
4343
var nextproto = "relay"
4444
r.clientTls.NextProtos = []string{nextproto}
4545

src/server.go

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,19 +11,19 @@ package main
1111
import (
1212
"context"
1313
"crypto/tls"
14-
//"encoding/hex"
1514
"errors"
1615
"fmt"
1716
"io"
1817
"net"
18+
"os"
1919
"path"
2020
"strings"
2121
"sync"
2222
"time"
2323

24-
"github.com/quic-go/quic-go"
2524
L "github.com/opencoff/go-logger"
2625
"github.com/opencoff/go-ratelimit"
26+
"github.com/quic-go/quic-go"
2727
)
2828

2929
// Common server state
@@ -55,7 +55,7 @@ type Server struct {
5555

5656
rl *ratelimit.Limiter
5757

58-
log *L.Logger
58+
log L.Logger
5959
}
6060

6161
// Encapsulates info needed to be a plain listener or a TLS listener.
@@ -96,7 +96,7 @@ type relay struct {
9696

9797
// Make a new instance of a Server and return it
9898
// This function exits on any configuration parsing error.
99-
func NewServer(lc *ListenConf, c *Conf, log *L.Logger) Proxy {
99+
func NewServer(lc *ListenConf, c *Conf, log L.Logger) Proxy {
100100
addr := lc.Addr
101101

102102
// create a sub-logger with the listener's prefix.
@@ -410,7 +410,7 @@ func (p *TCPServer) handleTCP(conn Conn, ctx context.Context) {
410410

411411
// handle the relay from 'conn' to the peer and back.
412412
// this sets up the peer connection before the relay
413-
func (p *Server) handleConn(conn Conn, ctx context.Context, log *L.Logger) {
413+
func (p *Server) handleConn(conn Conn, ctx context.Context, log L.Logger) {
414414
defer func() {
415415
p.wg.Done()
416416
conn.Close()
@@ -511,7 +511,7 @@ func (p *Server) handleConn(conn Conn, ctx context.Context, log *L.Logger) {
511511
}
512512

513513
// Negotiate socksv5 with peer 'fd' and return endpoints to dial
514-
func (p *Server) socks(fd Conn, buf []byte, log *L.Logger) (network, addr string, nr int, err error) {
514+
func (p *Server) socks(fd Conn, buf []byte, log L.Logger) (network, addr string, nr int, err error) {
515515

516516
done := p.ctx.Done()
517517
// Socksv5 state machine:
@@ -674,7 +674,17 @@ func (p *Server) putBuf(b []byte) {
674674
p.pool.Put(b)
675675
}
676676

677-
func (p *Server) cancellableCopy(d, s Conn, buf []byte, ctx context.Context, log *L.Logger) (x, y int) {
677+
// return true if err matches any of the target errors
678+
func errAny(err error, target ...error) bool {
679+
for _, x := range target {
680+
if errors.Is(err, x) {
681+
return true
682+
}
683+
}
684+
return false
685+
}
686+
687+
func (p *Server) cancellableCopy(d, s Conn, buf []byte, ctx context.Context, log L.Logger) (x, y int) {
678688
rto := time.Duration(p.Timeout.Read) * time.Second
679689
wto := time.Duration(p.Timeout.Write) * time.Second
680690
done := ctx.Done()
@@ -688,7 +698,7 @@ func (p *Server) cancellableCopy(d, s Conn, buf []byte, ctx context.Context, log
688698
}
689699

690700
if err != nil {
691-
if err != io.EOF && err != context.Canceled && !isReset(err) {
701+
if !errAny(err, io.EOF, context.Canceled, os.ErrDeadlineExceeded) && !isReset(err) {
692702
log.Debug("%s: nr %d, read err %s", s.LocalAddr().String(), nr, err)
693703
return
694704
}
@@ -775,7 +785,7 @@ func (p *TCPServer) Accept() (net.Conn, error) {
775785
}
776786
}
777787

778-
func (s *Server) getSNIHandler(dir string, log *L.Logger) func(h *tls.ClientHelloInfo) (*tls.Certificate, error) {
788+
func (s *Server) getSNIHandler(dir string, log L.Logger) func(h *tls.ClientHelloInfo) (*tls.Certificate, error) {
779789
conf := s.conf
780790
dir = conf.Path(dir)
781791
if !isdir(dir) {

src/socks_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ func TestSocksToTcpIP4(t *testing.T) {
1818
lca := cfga.Listen[0]
1919
lca.Connect.Addr = "SOCKS"
2020

21-
cfga.Dump(log)
21+
cfga.Dump(&logWriter{t})
2222

2323
// start simple server on the other end of socks
2424
s := newTcpServer("tcp4", "127.0.0.1:9010", nil, t)
@@ -56,7 +56,7 @@ func TestSocksToTcpHost(t *testing.T) {
5656
lca := cfga.Listen[0]
5757
lca.Connect.Addr = "SOCKS"
5858

59-
cfga.Dump(log)
59+
cfga.Dump(&logWriter{t})
6060

6161
// start simple server on the other end of socks
6262
s := newTcpServer("tcp4", "localhost:9010", nil, t)
@@ -115,8 +115,8 @@ func TestSocksToQuicIP4(t *testing.T) {
115115
lcb := cfgb.Listen[0]
116116
lcb.Connect.Addr = "SOCKS"
117117

118-
cfga.Dump(log)
119-
cfgb.Dump(log)
118+
cfga.Dump(&logWriter{t})
119+
cfgb.Dump(&logWriter{t})
120120

121121
cert, err := pki.ServerCert("server.name", lcb.Addr)
122122
assert(err == nil, "can't create server cert: %s", err)

src/tcp_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -365,7 +365,7 @@ func TestClientTlsToQuic(t *testing.T) {
365365
lc.clientCfg = &qtlsCfg
366366
lc.Connect.Quic = true
367367

368-
cfg.Dump(log)
368+
cfg.Dump(&logWriter{t})
369369

370370
// client TLS config; we need the proper root and client certs
371371
ctlsCfg := *tlsCfg

src/tcpdial.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,11 @@ import (
1919

2020
type tcpDialer struct {
2121
r *Server
22-
log *L.Logger
22+
log L.Logger
2323
dial *net.Dialer
2424
}
2525

26-
func newTCPDialer(r *Server, log *L.Logger) (Dialer, error) {
26+
func newTCPDialer(r *Server, log L.Logger) (Dialer, error) {
2727
return &tcpDialer{
2828
r: r,
2929
log: log,

src/utils_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ func (a *logWriter) Write(b []byte) (int, error) {
5353
return len(b), nil
5454
}
5555

56-
func newLogger(t *testing.T) *L.Logger {
56+
func newLogger(t *testing.T) L.Logger {
5757
assert := newAsserter(t)
5858
a := &logWriter{T: t}
5959
log, err := L.New(a, L.LOG_DEBUG, "gotun-test", 0)

0 commit comments

Comments
 (0)