move the functional option into option.go

This commit is contained in:
2025-05-07 16:15:32 +01:00
parent 80ef18f705
commit a00796254d
2 changed files with 22 additions and 15 deletions

22
option.go Normal file
View File

@@ -0,0 +1,22 @@
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
}
}