From e5385be6daaca6a4cf4a1a3143b56b1d047afff4 Mon Sep 17 00:00:00 2001
From: Moritz Marquardt <git@momar.de>
Date: Wed, 24 Nov 2021 19:08:34 +0100
Subject: [PATCH] Fix iterator issue causing 100% CPU load

---
 certificates.go | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/certificates.go b/certificates.go
index 0f75c53..d0735c6 100644
--- a/certificates.go
+++ b/certificates.go
@@ -443,7 +443,8 @@ func setupCertificates() {
 			// clean up expired certs
 			now := time.Now()
 			expiredCertCount := 0
-			key, resBytes, err := keyDatabase.Items().Next()
+			keyDatabaseIterator := keyDatabase.Items()
+			key, resBytes, err := keyDatabaseIterator.Next()
 			for err == nil {
 				if !bytes.Equal(key, MainDomainSuffix) {
 					resGob := bytes.NewBuffer(resBytes)
@@ -464,7 +465,7 @@ func setupCertificates() {
 						}
 					}
 				}
-				key, resBytes, err = keyDatabase.Items().Next()
+				key, resBytes, err = keyDatabaseIterator.Next()
 			}
 			log.Printf("Removed %d expired certificates from the database", expiredCertCount)