diff --git a/service/tcp.go b/service/tcp.go index bb6c4383..44473df8 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/udp.go b/service/udp.go index 165da070..df034b15 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 }