diff --git a/service/tcp.go b/service/tcp.go index bb6c438..44473df 100644 --- a/service/tcp.go +++ b/service/tcp.go @@ -186,13 +186,16 @@ func makeValidatingTCPStreamDialer(targetIPValidator onet.TargetIPValidator) tra // StreamHandler is a handler that handles stream connections. type StreamHandler interface { Handle(ctx context.Context, conn transport.StreamConn, connMetrics TCPConnMetrics) - // SetLogger sets the logger used to log messages. + // SetLogger sets the logger used to log messages. Uses a no-op logger if nil. SetLogger(l Logger) // SetTargetDialer sets the [transport.StreamDialer] to be used to connect to target addresses. SetTargetDialer(dialer transport.StreamDialer) } func (s *streamHandler) SetLogger(l Logger) { + if l == nil { + l = &noopLogger{} + } s.l = l } diff --git a/service/tcp_test.go b/service/tcp_test.go index d287e43..e8f234f 100644 --- a/service/tcp_test.go +++ b/service/tcp_test.go @@ -102,7 +102,7 @@ func BenchmarkTCPFindCipherFail(b *testing.B) { } clientIP := clientConn.RemoteAddr().(*net.TCPAddr).AddrPort().Addr() b.StartTimer() - findAccessKey(clientConn, clientIP, cipherList, nil) + findAccessKey(clientConn, clientIP, cipherList, &noopLogger{}) b.StopTimer() } } @@ -205,7 +205,7 @@ func BenchmarkTCPFindCipherRepeat(b *testing.B) { cipher := cipherEntries[cipherNumber].CryptoKey go shadowsocks.NewWriter(writer, cipher).Write(makeTestPayload(50)) b.StartTimer() - _, _, _, _, err := findAccessKey(&c, clientIP, cipherList, nil) + _, _, _, _, err := findAccessKey(&c, clientIP, cipherList, &noopLogger{}) b.StopTimer() if err != nil { b.Error(err) diff --git a/service/udp.go b/service/udp.go index 165da07..df034b1 100644 --- a/service/udp.go +++ b/service/udp.go @@ -108,7 +108,7 @@ func NewPacketHandler(natTimeout time.Duration, cipherList CipherList, m UDPMetr // PacketHandler is a running UDP shadowsocks proxy that can be stopped. type PacketHandler interface { - // SetLogger sets the logger used to log messages. + // SetLogger sets the logger used to log messages. Uses a no-op logger if nil. SetLogger(l Logger) // SetTargetIPValidator sets the function to be used to validate the target IP addresses. SetTargetIPValidator(targetIPValidator onet.TargetIPValidator) @@ -117,6 +117,9 @@ type PacketHandler interface { } func (h *packetHandler) SetLogger(l Logger) { + if l == nil { + l = &noopLogger{} + } h.l = l } diff --git a/service/udp_test.go b/service/udp_test.go index 1cf020e..0d62a02 100644 --- a/service/udp_test.go +++ b/service/udp_test.go @@ -409,7 +409,7 @@ func BenchmarkUDPUnpackFail(b *testing.B) { testIP := netip.MustParseAddr("192.0.2.1") b.ResetTimer() for n := 0; n < b.N; n++ { - findAccessKeyUDP(testIP, textBuf, testPayload, cipherList, nil) + findAccessKeyUDP(testIP, textBuf, testPayload, cipherList, &noopLogger{}) } } @@ -439,7 +439,7 @@ func BenchmarkUDPUnpackRepeat(b *testing.B) { cipherNumber := n % numCiphers ip := ips[cipherNumber] packet := packets[cipherNumber] - _, _, _, err := findAccessKeyUDP(ip, testBuf, packet, cipherList, nil) + _, _, _, err := findAccessKeyUDP(ip, testBuf, packet, cipherList, &noopLogger{}) if err != nil { b.Error(err) } @@ -468,7 +468,7 @@ func BenchmarkUDPUnpackSharedKey(b *testing.B) { b.ResetTimer() for n := 0; n < b.N; n++ { ip := ips[n%numIPs] - _, _, _, err := findAccessKeyUDP(ip, testBuf, packet, cipherList, nil) + _, _, _, err := findAccessKeyUDP(ip, testBuf, packet, cipherList, &noopLogger{}) if err != nil { b.Error(err) }