Procházet zdrojové kódy

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 před 10 roky
rodič
revize
be7d573366
1 změnil soubory, kde provedl 5 přidání a 4 odebrání
  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
 }