x/metrics/wrapper/listener.go
2022-09-28 11:47:56 +08:00

33 lines
465 B
Go

package wrapper
import (
"net"
xmetrics "github.com/go-gost/x/metrics"
)
type listener struct {
service string
net.Listener
}
func WrapListener(service string, ln net.Listener) net.Listener {
if !xmetrics.IsEnabled() {
return ln
}
return &listener{
service: service,
Listener: ln,
}
}
func (ln *listener) Accept() (net.Conn, error) {
c, err := ln.Listener.Accept()
if err != nil {
return nil, err
}
return WrapConn(ln.service, c), nil
}