any-sync/net/secureservice/basiclistener.go
2023-01-05 15:34:09 +03:00

27 lines
596 B
Go

package secureservice
import (
"context"
"github.com/anytypeio/any-sync/net/timeoutconn"
"net"
"time"
)
type basicListener struct {
net.Listener
timeoutMillis int
}
func newBasicListener(listener net.Listener, timeoutMillis int) ContextListener {
return &basicListener{listener, timeoutMillis}
}
func (b *basicListener) Accept(ctx context.Context) (context.Context, net.Conn, error) {
conn, err := b.Listener.Accept()
if err != nil {
return nil, nil, err
}
timeoutConn := timeoutconn.NewConn(conn, time.Duration(b.timeoutMillis)*time.Millisecond)
return ctx, timeoutConn, err
}