summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--cache.go14
-rw-r--r--cache_test.go20
-rw-r--r--init_test.go10
3 files changed, 30 insertions, 14 deletions
diff --git a/cache.go b/cache.go
index 4cb1855..e0fedb1 100644
--- a/cache.go
+++ b/cache.go
@@ -14,11 +14,19 @@ import (
 )
 
 func checkCacheTime() bool {
-	return time.Since(confObj.LastCache) > confObj.CacheInterval
+	confObj.Mu.RLock()
+	answer := time.Since(confObj.LastCache) > confObj.CacheInterval
+	confObj.Mu.RUnlock()
+
+	return answer
 }
 
 func checkDBtime() bool {
-	return time.Since(confObj.LastPush) > confObj.DBInterval
+	confObj.Mu.RLock()
+	answer := time.Since(confObj.LastPush) > confObj.DBInterval
+	confObj.Mu.RUnlock()
+
+	return answer
 }
 
 // Launched by init as a coroutine to watch
@@ -38,6 +46,7 @@ func cacheAndPush() {
 
 func refreshCache() {
 
+	twtxtCache.Mu.RLock()
 	for k := range twtxtCache.Users {
 		err := twtxtCache.UpdateUser(k)
 		if err != nil {
@@ -45,6 +54,7 @@ func refreshCache() {
 			continue
 		}
 	}
+	twtxtCache.Mu.RUnlock()
 
 	remoteRegistries.Mu.RLock()
 	for _, v := range remoteRegistries.List {
diff --git a/cache_test.go b/cache_test.go
index 82d37c2..cb92c38 100644
--- a/cache_test.go
+++ b/cache_test.go
@@ -79,17 +79,19 @@ func Benchmark_pushDatabase(b *testing.B) {
 		initDatabase()
 	}
 
-	out, _, err := registry.GetTwtxt("https://gbmor.dev/twtxt.txt")
-	if err != nil {
-		b.Errorf("Couldn't set up benchmark: %v\n", err)
-	}
+	if _, ok := twtxtCache.Users["https://gbmor.dev/twtxt.txt"]; !ok {
+		out, _, err := registry.GetTwtxt("https://gbmor.dev/twtxt.txt")
+		if err != nil {
+			b.Errorf("Couldn't set up benchmark: %v\n", err)
+		}
 
-	statusmap, err := registry.ParseUserTwtxt(out, "gbmor", "https://gbmor.dev/twtxt.txt")
-	if err != nil {
-		b.Errorf("Couldn't set up benchmark: %v\n", err)
-	}
+		statusmap, err := registry.ParseUserTwtxt(out, "gbmor", "https://gbmor.dev/twtxt.txt")
+		if err != nil {
+			b.Errorf("Couldn't set up benchmark: %v\n", err)
+		}
 
-	twtxtCache.AddUser("gbmor", "https://gbmor.dev/twtxt.txt", net.ParseIP("127.0.0.1"), statusmap)
+		twtxtCache.AddUser("gbmor", "https://gbmor.dev/twtxt.txt", net.ParseIP("127.0.0.1"), statusmap)
+	}
 
 	b.ResetTimer()
 
diff --git a/init_test.go b/init_test.go
index 0739d47..bffe036 100644
--- a/init_test.go
+++ b/init_test.go
@@ -7,11 +7,15 @@ import (
 )
 
 var testport = fmt.Sprintf(":%v", confObj.Port)
+var hasInit = false
 
 func initTestConf() {
-	initConfig()
-	tmpls = initTemplates()
-	logToNull()
+	if !hasInit {
+		initConfig()
+		tmpls = initTemplates()
+		logToNull()
+		hasInit = true
+	}
 }
 
 func logToNull() {
a>
b0a216f5 ^
2c5ea01d ^
b0a216f5 ^



3a1e1f28 ^
b0a216f5 ^
e7758eba ^
b0a216f5 ^

5fca2a0b ^
b0b3af33 ^


b0a216f5 ^
b0b3af33 ^

2c5ea01d ^
5fca2a0b ^
b0b3af33 ^
2c5ea01d ^
582f3519 ^
b06433bc ^
582f3519 ^

94c5d83e ^
dee6cfa6 ^
e9e4b4ff ^
b0a216f5 ^
76612b05 ^
a082b66a ^
b0a216f5 ^
e9e4b4ff ^





612b8b8b ^
e9e4b4ff ^
5fca2a0b ^
f473be92 ^
5fca2a0b ^
9cf43c17 ^
5fca2a0b ^

c7720fff ^


a6836d5d ^

c7720fff ^
8d21b83c ^


e9e4b4ff ^
25a4162d ^
e9e4b4ff ^
0c2c782d ^
636d9393 ^
b0a216f5 ^
c6afc196 ^

c0d63e78 ^


c6afc196 ^
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89