123456789101112131415161718192021222324252627282930313233343536 |
- package tftp
- import (
- "math/rand"
- "time"
- )
- const (
- defaultTimeout = 5 * time.Second
- defaultRetries = 5
- )
- type backoffFunc func(int) time.Duration
- type backoff struct {
- attempt int
- handler backoffFunc
- }
- func (b *backoff) reset() {
- b.attempt = 0
- }
- func (b *backoff) count() int {
- return b.attempt
- }
- func (b *backoff) backoff() {
- if b.handler == nil {
- time.Sleep(time.Duration(rand.Int63n(int64(time.Second))))
- } else {
- time.Sleep(b.handler(b.attempt))
- }
- b.attempt++
- }
|