x/stats/wrapper/listener.go
2024-01-03 20:55:06 +08:00

33 lines
449 B
Go

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