Explorar o código

lease: store server-decided TTL in lease

If actual TTL is not stored in lease, the client will receive the correct
TTL and therefore won't be able to keepalive correctly.
Anthony Romano %!s(int64=10) %!d(string=hai) anos
pai
achega
be7d573366
Modificáronse 1 ficheiros con 5 adicións e 4 borrados
  1. 5 4
      lease/lessor.go

+ 5 - 4
lease/lessor.go

@@ -413,16 +413,17 @@ func (l Lease) removeFrom(b backend.Backend) {
 // refresh refreshes the expiry of the lease. It extends the expiry at least
 // minLeaseTTL second.
 func (l *Lease) refresh() {
-	ttl := l.TTL
 	if l.TTL < minLeaseTTL {
-		ttl = minLeaseTTL
+		l.TTL = minLeaseTTL
 	}
-
-	l.expiry = time.Now().Add(time.Second * time.Duration(ttl))
+	l.expiry = time.Now().Add(time.Second * time.Duration(l.TTL))
 }
 
 // forever sets the expiry of lease to be forever.
 func (l *Lease) forever() {
+	if l.TTL < minLeaseTTL {
+		l.TTL = minLeaseTTL
+	}
 	l.expiry = forever
 }