q3rcon-proxy/option.go

25 lines
519 B
Go

package udpproxy
import (
"time"
log "github.com/sirupsen/logrus"
)
// Option is a functional option type that allows us to configure the Client.
type Option func(*Client)
// WithSessionTimeout is a functional option to set the session timeout.
func WithSessionTimeout(timeout time.Duration) Option {
return func(c *Client) {
if timeout < time.Minute {
log.Warnf(
"cannot set stale session timeout to less than 1 minute.. defaulting to 20 minutes",
)
return
}
c.sessionTimeout = timeout
}
}