Skip to content

Commit 94658df

Browse files
committed
5️⃣ all: upgrade to go 1.25
1 parent b300632 commit 94658df

File tree

16 files changed

+90
-196
lines changed

16 files changed

+90
-196
lines changed

cred/manager.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -148,11 +148,9 @@ func (s *ManagedServer) dequeueSave(ctx context.Context) {
148148

149149
// Start starts the managed server.
150150
func (s *ManagedServer) Start(ctx context.Context) {
151-
s.wg.Add(1)
152-
go func() {
151+
s.wg.Go(func() {
153152
s.dequeueSave(ctx)
154-
s.wg.Done()
155-
}()
153+
})
156154
}
157155

158156
// Stop stops the managed server.

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module github.com/database64128/shadowsocks-go
22

3-
go 1.24.0
3+
go 1.25.0
44

55
require (
66
github.com/database64128/netx-go v0.1.0

httpproxy/server.go

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -187,14 +187,11 @@ func (c serverNonConnectPendingConn) Proceed() (netio.Conn, error) {
187187
respDone := make(chan struct{})
188188

189189
var wg sync.WaitGroup
190-
wg.Add(1)
191-
192-
go func() {
193-
defer wg.Done()
190+
wg.Go(func() {
194191
err := serverForwardRequests(c.req, reqCh, respDone, plbw, c.rwbr, c.logger)
195192
pl.CloseWriteWithError(err)
196193
close(reqCh)
197-
}()
194+
})
198195

199196
err := serverForwardResponses(reqCh, plbr, c.rw, rwbw, rwbwpcw, c.logger)
200197
pl.CloseReadWithError(err)

httpproxy/stream_test.go

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -133,20 +133,16 @@ func TestStreamClientServerBasicAuthBadCredentials(t *testing.T) {
133133
serr error
134134
)
135135

136-
wg.Add(2)
137-
138-
go func() {
139-
defer wg.Done()
136+
wg.Go(func() {
140137
for i, clientProxyAuthHeader := range clientProxyAuthHeaders {
141138
_, clientErrors[i] = ClientConnect(pl, clientTargetAddr, clientProxyAuthHeader)
142139
}
143140
_ = pl.CloseWrite()
144-
}()
141+
})
145142

146-
go func() {
147-
defer wg.Done()
143+
wg.Go(func() {
148144
_, _, _, serr = ServerHandle(pr, logger, map[string]string{"QWxhZGRpbjpvcGVuIHNlc2FtZQ==": "Aladdin"})
149-
}()
145+
})
150146

151147
wg.Wait()
152148

@@ -183,11 +179,9 @@ func TestHttpStreamClientReadWriterServerSpeaksFirst(t *testing.T) {
183179
)
184180

185181
// Start client.
186-
wg.Add(1)
187-
go func() {
188-
defer wg.Done()
182+
wg.Go(func() {
189183
clientConn, clientErr = ClientConnect(pl, clientTargetAddr, "")
190-
}()
184+
})
191185

192186
// Read and verify client request.
193187
b := make([]byte, 1024)
@@ -228,12 +222,10 @@ func TestHttpStreamClientReadWriterServerSpeaksFirst(t *testing.T) {
228222
const clientPayload = "Hear! Hear!"
229223

230224
// Write client payload.
231-
wg.Add(1)
232-
go func() {
233-
defer wg.Done()
225+
wg.Go(func() {
234226
_, clientErr = clientConn.Write([]byte(clientPayload))
235227
_ = clientConn.CloseWrite()
236-
}()
228+
})
237229

238230
// Read from server and verify.
239231
b = b[:1024]

netio/pipe_test.go

Lines changed: 10 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -88,9 +88,7 @@ func TestPipeWriteTo(t *testing.T) {
8888

8989
var wg sync.WaitGroup
9090
defer wg.Wait()
91-
wg.Add(1)
92-
go func() {
93-
defer wg.Done()
91+
wg.Go(func() {
9492
if _, err := c1.Write(c.payload[0]); err != nil {
9593
t.Errorf("c1.Write(c.payload[0]) failed: %v", err)
9694
return
@@ -121,7 +119,7 @@ func TestPipeWriteTo(t *testing.T) {
121119
t.Errorf("c1.CloseWrite() failed: %v", err)
122120
return
123121
}
124-
}()
122+
})
125123

126124
var buf bytes.Buffer
127125
buf.Grow(len(c.expectedBytes))
@@ -154,17 +152,14 @@ func TestPipeCloseRead(t *testing.T) {
154152

155153
var wg sync.WaitGroup
156154
defer wg.Wait()
157-
wg.Add(2)
158-
go func() {
159-
defer wg.Done()
155+
wg.Go(func() {
160156
readHelloWorld(t, c2)
161-
}()
162-
go func() {
163-
defer wg.Done()
157+
})
158+
wg.Go(func() {
164159
if _, err := c2.Write(nil); err != io.ErrClosedPipe {
165160
t.Errorf("c2.Write() = %v, want io.ErrClosedPipe", err)
166161
}
167-
}()
162+
})
168163

169164
if err := c1.CloseRead(); err != nil {
170165
t.Errorf("c1.CloseRead() = %v, want nil", err)
@@ -185,19 +180,16 @@ func TestPipeCloseWrite(t *testing.T) {
185180

186181
var wg sync.WaitGroup
187182
defer wg.Wait()
188-
wg.Add(2)
189-
go func() {
190-
defer wg.Done()
183+
wg.Go(func() {
191184
if _, err := c2.Read(nil); err != io.EOF {
192185
t.Errorf("c2.Read() = %v, want io.EOF", err)
193186
}
194-
}()
195-
go func() {
196-
defer wg.Done()
187+
})
188+
wg.Go(func() {
197189
if _, err := c2.Write([]byte("Hello, world!")); err != nil {
198190
t.Errorf("c2.Write() = %v, want nil", err)
199191
}
200-
}()
192+
})
201193

202194
if err := c1.CloseWrite(); err != nil {
203195
t.Errorf("c1.CloseWrite() = %v, want nil", err)

netio/stream.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,12 +40,10 @@ func BidirectionalCopy(left, right ReadWriter) (nl2r, nr2l int64, err error) {
4040
l2rErr error
4141
)
4242

43-
wg.Add(1)
44-
go func() {
43+
wg.Go(func() {
4544
nl2r, l2rErr = io.Copy(right, left)
4645
_ = right.CloseWrite()
47-
wg.Done()
48-
}()
46+
})
4947

5048
nr2l, err = io.Copy(left, right)
5149
_ = left.CloseWrite()

netiotest/stream.go

Lines changed: 14 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -474,7 +474,6 @@ func testConnPairRoundTrip(t *testing.T, copySize int, c1, c2 netio.Conn) {
474474
}
475475

476476
var wg sync.WaitGroup
477-
wg.Add(4)
478477

479478
readFunc := func(name string, c netio.Conn) {
480479
var buf bytes.Buffer
@@ -486,21 +485,19 @@ func testConnPairRoundTrip(t *testing.T, copySize int, c1, c2 netio.Conn) {
486485
if got := buf.Bytes(); !bytes.Equal(got, want) {
487486
t.Error("got != want")
488487
}
489-
wg.Done()
490488
}
491-
go readFunc("c1", c1)
492-
go readFunc("c2", c2)
489+
wg.Go(func() { readFunc("c1", c1) })
490+
wg.Go(func() { readFunc("c2", c2) })
493491

494492
writeFunc := func(name string, c netio.Conn) {
495493
r := hideReaderWriteTo(bytes.NewReader(want))
496494
if _, err := io.CopyBuffer(c, r, makeCopyBuf()); err != nil {
497495
t.Errorf("Copy %s <- r failed: %v", name, err)
498496
}
499497
_ = c.CloseWrite()
500-
wg.Done()
501498
}
502-
go writeFunc("c1", c1)
503-
go writeFunc("c2", c2)
499+
wg.Go(func() { writeFunc("c1", c1) })
500+
wg.Go(func() { writeFunc("c2", c2) })
504501

505502
wg.Wait()
506503

@@ -515,15 +512,13 @@ func testConnPairRoundTripBidirectionalCopy(
515512
bidirectionalCopy func(left, right netio.ReadWriter) (nl2r, nr2l int64, err error),
516513
) {
517514
var wg sync.WaitGroup
518-
wg.Add(1)
519-
go func() {
515+
wg.Go(func() {
520516
if _, _, err := bidirectionalCopy(c3, c4); err != nil {
521517
t.Errorf("Bidirectional copy c3 <-> c4 failed: %v", err)
522518
}
523519
_ = c3.Close()
524520
_ = c4.Close()
525-
wg.Done()
526-
}()
521+
})
527522
testConnPairRoundTrip(t, copySize, c1, c2)
528523
wg.Wait()
529524
}
@@ -535,7 +530,6 @@ func testConnPairRoundTripInterleaveReadWriteToWriteReadFrom(t *testing.T, copyS
535530
rand.Read(want)
536531

537532
var wg sync.WaitGroup
538-
wg.Add(4)
539533

540534
// Read the first half, then WriteTo the second half.
541535
readFunc := func(name string, c netio.Conn) {
@@ -555,10 +549,9 @@ func testConnPairRoundTripInterleaveReadWriteToWriteReadFrom(t *testing.T, copyS
555549
if got2 := buf.Bytes(); !bytes.Equal(got2, want[len(got1):]) {
556550
t.Error("got2 != want2")
557551
}
558-
wg.Done()
559552
}
560-
go readFunc("c1", c1)
561-
go readFunc("c2", c2)
553+
wg.Go(func() { readFunc("c1", c1) })
554+
wg.Go(func() { readFunc("c2", c2) })
562555

563556
// Interleave Write and ReadFrom, each writing copySize bytes.
564557
writeFunc := func(name string, c netio.Conn) {
@@ -577,10 +570,9 @@ func testConnPairRoundTripInterleaveReadWriteToWriteReadFrom(t *testing.T, copyS
577570
}
578571
}
579572
_ = c.CloseWrite()
580-
wg.Done()
581573
}
582-
go writeFunc("c1", c1)
583-
go writeFunc("c2", c2)
574+
wg.Go(func() { writeFunc("c1", c1) })
575+
wg.Go(func() { writeFunc("c2", c2) })
584576

585577
wg.Wait()
586578

@@ -594,12 +586,10 @@ func bidirectionalCopyNoWriteTo(left, right netio.ReadWriter) (nl2r, nr2l int64,
594586
l2rErr error
595587
)
596588

597-
wg.Add(1)
598-
go func() {
589+
wg.Go(func() {
599590
nl2r, l2rErr = copyNoWriteTo(right, left)
600591
_ = right.CloseWrite()
601-
wg.Done()
602-
}()
592+
})
603593

604594
nr2l, err = copyNoWriteTo(left, right)
605595
_ = left.CloseWrite()
@@ -954,10 +944,7 @@ func BenchmarkStreamClientDialServerHandle(
954944
go func() {
955945
var wg sync.WaitGroup
956946
for pc := range ch {
957-
wg.Add(1)
958-
go func() {
959-
defer wg.Done()
960-
947+
wg.Go(func() {
961948
req, err := server.HandleStream(pc, logger)
962949
if err != nil {
963950
b.Errorf("server.HandleStream failed: %v", err)
@@ -976,7 +963,7 @@ func BenchmarkStreamClientDialServerHandle(
976963
}
977964

978965
_ = serverConn.Close()
979-
}()
966+
})
980967
}
981968
wg.Wait()
982969
}()

service/udp_nat.go

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -153,12 +153,9 @@ func (s *UDPNATRelay) startGeneric(ctx context.Context, index int, lnc *udpRelay
153153
zap.String("listenAddress", lnc.address),
154154
)
155155

156-
s.mwg.Add(1)
157-
158-
go func() {
156+
s.mwg.Go(func() {
159157
s.recvFromServerConnGeneric(ctx, lnc)
160-
s.mwg.Done()
161-
}()
158+
})
162159

163160
lnc.logger.Info("Started UDP NAT relay service listener")
164161
return
@@ -278,9 +275,8 @@ func (s *UDPNATRelay) recvFromServerConnGeneric(ctx context.Context, lnc *udpRel
278275
natConnSendCh := make(chan *natQueuedPacket, lnc.sendChannelCapacity)
279276
entry.natConnSendCh = natConnSendCh
280277
s.table[clientAddrPort] = entry
281-
s.wg.Add(1)
282278

283-
go func() {
279+
s.wg.Go(func() {
284280
var sendChClean bool
285281

286282
defer func() {
@@ -294,8 +290,6 @@ func (s *UDPNATRelay) recvFromServerConnGeneric(ctx context.Context, lnc *udpRel
294290
s.putQueuedPacket(queuedPacket)
295291
}
296292
}
297-
298-
s.wg.Done()
299293
}()
300294

301295
c, err := s.router.GetUDPClient(ctx, router.RequestInfo{
@@ -377,9 +371,7 @@ func (s *UDPNATRelay) recvFromServerConnGeneric(ctx context.Context, lnc *udpRel
377371
zap.String("client", clientInfo.Name),
378372
)
379373

380-
s.wg.Add(1)
381-
382-
go func() {
374+
s.wg.Go(func() {
383375
s.relayServerConnToNatConnGeneric(ctx, natUplinkGeneric{
384376
clientName: clientInfo.Name,
385377
clientAddrPort: clientAddrPort,
@@ -391,8 +383,7 @@ func (s *UDPNATRelay) recvFromServerConnGeneric(ctx context.Context, lnc *udpRel
391383
})
392384
natConn.Close()
393385
clientSession.Close()
394-
s.wg.Done()
395-
}()
386+
})
396387

397388
s.relayNatConnToServerConnGeneric(natDownlinkGeneric{
398389
clientName: clientInfo.Name,
@@ -405,7 +396,7 @@ func (s *UDPNATRelay) recvFromServerConnGeneric(ctx context.Context, lnc *udpRel
405396
serverConnPacker: serverConnPacker,
406397
logger: lnc.logger,
407398
})
408-
}()
399+
})
409400

410401
if ce := lnc.logger.Check(zap.DebugLevel, "New UDP NAT session"); ce != nil {
411402
ce.Write(

0 commit comments

Comments
 (0)