| 1234567891011121314151617181920212223242526 |
- package relay
-
- import (
- "math"
- "math/rand"
- "time"
- )
-
- func getConnectionTimeToLive() time.Duration {
- return getTime(ConnectionTimeToLiveMin, ConnectionTimeToLiveMax)
- }
-
- func getTimeout() time.Duration {
- return getTime(TimeoutMin, TimeoutMax)
- }
-
- func getTime(minDuration, maxDuration time.Duration) time.Duration {
- minDurationInSeconds := minDuration.Seconds()
- maxDurationInSeconds := maxDuration.Seconds()
- middle := minDurationInSeconds + (maxDurationInSeconds-minDurationInSeconds)/2 // nolint: gomnd
-
- number := minDurationInSeconds + rand.ExpFloat64()*middle
- number = math.Round(math.Min(maxDurationInSeconds, number))
-
- return time.Duration(number) * time.Second
- }
|