add rate limiter

This commit is contained in:
ginuerzh
2022-09-05 22:47:51 +08:00
parent e23da0f319
commit 4c2131ca6d
40 changed files with 1622 additions and 135 deletions

View File

@ -0,0 +1,32 @@
package wrapper
import (
"net"
"github.com/go-gost/core/metrics"
)
type listener struct {
service string
net.Listener
}
func WrapListener(service string, ln net.Listener) net.Listener {
if !metrics.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
}