From a4403e4e80092c83a9e0cdb371192deeb4905ea7 Mon Sep 17 00:00:00 2001
From: Anthony Wang <ta180m@proton.me>
Date: Tue, 14 Jun 2022 12:16:32 -0500
Subject: [PATCH] Move httpsig algs constant slice to
 modules/setting/federation.go

---
 modules/activitypub/client.go | 11 +----------
 modules/setting/federation.go |  8 ++++++++
 2 files changed, 9 insertions(+), 10 deletions(-)

diff --git a/modules/activitypub/client.go b/modules/activitypub/client.go
index bcd248e21a..b04706dd09 100644
--- a/modules/activitypub/client.go
+++ b/modules/activitypub/client.go
@@ -55,15 +55,6 @@ type Client struct {
 	pubID       string
 }
 
-var algos []httpsig.Algorithm
-
-func init() {
-	algos = make([]httpsig.Algorithm, len(setting.Federation.Algorithms))
-	for i, algo := range setting.Federation.Algorithms {
-		algos[i] = httpsig.Algorithm(algo)
-	}
-}
-
 // NewClient function
 func NewClient(user *user_model.User, pubID string) (c *Client, err error) {
 	if err = containsRequiredHTTPHeaders(http.MethodGet, setting.Federation.GetHeaders); err != nil {
@@ -88,7 +79,7 @@ func NewClient(user *user_model.User, pubID string) (c *Client, err error) {
 				Proxy: proxy.Proxy(),
 			},
 		},
-		algs:        algos,
+		algs:        setting.HttpsigAlgs,
 		digestAlg:   httpsig.DigestAlgorithm(setting.Federation.DigestAlgorithm),
 		getHeaders:  setting.Federation.GetHeaders,
 		postHeaders: setting.Federation.PostHeaders,
diff --git a/modules/setting/federation.go b/modules/setting/federation.go
index 2fca3c2882..cba1851dfd 100644
--- a/modules/setting/federation.go
+++ b/modules/setting/federation.go
@@ -29,6 +29,9 @@ var (
 	}
 )
 
+// Constant slice of httpsig algorithm objects
+var HttpsigAlgs []httpsig.Algorithm
+
 func newFederationService() {
 	if err := Cfg.Section("federation").MapTo(&Federation); err != nil {
 		log.Fatal("Failed to map Federation settings: %v", err)
@@ -36,4 +39,9 @@ func newFederationService() {
 		log.Fatal("unsupported digest algorithm: %s", Federation.DigestAlgorithm)
 		return
 	}
+
+	HttpsigAlgs = make([]httpsig.Algorithm, len(Federation.Algorithms))
+	for i, alg := range Federation.Algorithms {
+		HttpsigAlgs[i] = httpsig.Algorithm(alg)
+	}
 }