update patch to latest version

This commit is contained in:
Balakrishnan Balasubramanian 2025-04-28 17:37:40 -04:00
parent 7db82fad46
commit fef593f4aa
3 changed files with 34 additions and 95 deletions

View File

@ -68,11 +68,11 @@ pkgbase = gotosocial
sha512sums = 2ff5499a31e12733cb20a9261942ed135fbac327d5a836b8955f3e86c009a603cf965440d9dbe6db64b80d0f652ba56faddb0ef398393b72474d8cf6c438ab80 sha512sums = 2ff5499a31e12733cb20a9261942ed135fbac327d5a836b8955f3e86c009a603cf965440d9dbe6db64b80d0f652ba56faddb0ef398393b72474d8cf6c438ab80
sha512sums = b89fad3073e140f17167515b38942e5b5e2bc2aee03c484e1bb7cf6444f86cb1e2a13a60b101e04d22633d348be073ca26cd309da4746e5062c12b4f3ce4b38a sha512sums = b89fad3073e140f17167515b38942e5b5e2bc2aee03c484e1bb7cf6444f86cb1e2a13a60b101e04d22633d348be073ca26cd309da4746e5062c12b4f3ce4b38a
sha512sums = 913a5209487aba06bf1d8ac7c02506a05d01a8e12f172666c84bf6870d6237640d4745617b0f07ea8c9dcf665f4e0d24a0aabef31611909f7e9384ed6e7b7e77 sha512sums = 913a5209487aba06bf1d8ac7c02506a05d01a8e12f172666c84bf6870d6237640d4745617b0f07ea8c9dcf665f4e0d24a0aabef31611909f7e9384ed6e7b7e77
sha512sums = 6c9a529ad0472d25500bb77bc9b6f268c01cef61559f5d9b26b192e84bd987d9eb22c6c5dee1dc7f60a5bb99513aff93f241e1e30478f81531fa53f55be442c6 sha512sums = 362181afc9823315045896eaeaa9367bc3af8671637ecd42d8d62a12274241753cd24c004e41fb86877cfec9a5e1ae4fd6730d31a8cb055d9b0a498a99422e8c
b2sums = 61a5b085b49cb196be4e6d77ba61cc06d578b89970953a09626f553441a522ba7e4b1f58ab60e6169cbb33bc9757d3a811c0fc2de7a48faf4bc005b82cf720f8 b2sums = 61a5b085b49cb196be4e6d77ba61cc06d578b89970953a09626f553441a522ba7e4b1f58ab60e6169cbb33bc9757d3a811c0fc2de7a48faf4bc005b82cf720f8
b2sums = ccf672731b88fc6700b0b81737790365e1eea0066bad1bbf6b13dac1e5b42af69063838efca47a6d9c16ee3f6308e2e23b92cf79d4226cd88f8551fb7361649b b2sums = ccf672731b88fc6700b0b81737790365e1eea0066bad1bbf6b13dac1e5b42af69063838efca47a6d9c16ee3f6308e2e23b92cf79d4226cd88f8551fb7361649b
b2sums = 4f65af952441c0f54bb32049a149675e207f8993678423d369c4095c57476464614ac720eccc64d7a93a81268ad7ca41cae75ca7211bd7b78f9035f6e5341f04 b2sums = 4f65af952441c0f54bb32049a149675e207f8993678423d369c4095c57476464614ac720eccc64d7a93a81268ad7ca41cae75ca7211bd7b78f9035f6e5341f04
b2sums = 9edd4520fb99856feb82d01935588add7f805aa180f2ed0fe169cb26576bc2e1d2c1e6ab11604d977cec6a4ad8f1d5be1413e1a366de59b89c5b869136538f8c b2sums = 9edd4520fb99856feb82d01935588add7f805aa180f2ed0fe169cb26576bc2e1d2c1e6ab11604d977cec6a4ad8f1d5be1413e1a366de59b89c5b869136538f8c
b2sums = b92f9b3b10109c2f63099c12c38c8615dc9b22f846ba15ec4c004069a7291f166cd4cb6ebf820f62dbf934a3388a767feaa3fdf8b47cf0a04532b182caaec149 b2sums = 71b2441e96c372f48bd6b1a1fabc2222c704b6a3c3d589c37e92ebcd892656e57e872ea9fbbf240a189f325e67527f4e542363b80ad4628a9cd94d28070ec6ad
pkgname = gotosocial pkgname = gotosocial

View File

@ -72,12 +72,12 @@ sha512sums=('101c379356645b0a636ecb5917f225786e46d774337f3df474d23bbb0d7b2a914cb
'2ff5499a31e12733cb20a9261942ed135fbac327d5a836b8955f3e86c009a603cf965440d9dbe6db64b80d0f652ba56faddb0ef398393b72474d8cf6c438ab80' '2ff5499a31e12733cb20a9261942ed135fbac327d5a836b8955f3e86c009a603cf965440d9dbe6db64b80d0f652ba56faddb0ef398393b72474d8cf6c438ab80'
'b89fad3073e140f17167515b38942e5b5e2bc2aee03c484e1bb7cf6444f86cb1e2a13a60b101e04d22633d348be073ca26cd309da4746e5062c12b4f3ce4b38a' 'b89fad3073e140f17167515b38942e5b5e2bc2aee03c484e1bb7cf6444f86cb1e2a13a60b101e04d22633d348be073ca26cd309da4746e5062c12b4f3ce4b38a'
'913a5209487aba06bf1d8ac7c02506a05d01a8e12f172666c84bf6870d6237640d4745617b0f07ea8c9dcf665f4e0d24a0aabef31611909f7e9384ed6e7b7e77' '913a5209487aba06bf1d8ac7c02506a05d01a8e12f172666c84bf6870d6237640d4745617b0f07ea8c9dcf665f4e0d24a0aabef31611909f7e9384ed6e7b7e77'
'6c9a529ad0472d25500bb77bc9b6f268c01cef61559f5d9b26b192e84bd987d9eb22c6c5dee1dc7f60a5bb99513aff93f241e1e30478f81531fa53f55be442c6') '362181afc9823315045896eaeaa9367bc3af8671637ecd42d8d62a12274241753cd24c004e41fb86877cfec9a5e1ae4fd6730d31a8cb055d9b0a498a99422e8c')
b2sums=('61a5b085b49cb196be4e6d77ba61cc06d578b89970953a09626f553441a522ba7e4b1f58ab60e6169cbb33bc9757d3a811c0fc2de7a48faf4bc005b82cf720f8' b2sums=('61a5b085b49cb196be4e6d77ba61cc06d578b89970953a09626f553441a522ba7e4b1f58ab60e6169cbb33bc9757d3a811c0fc2de7a48faf4bc005b82cf720f8'
'ccf672731b88fc6700b0b81737790365e1eea0066bad1bbf6b13dac1e5b42af69063838efca47a6d9c16ee3f6308e2e23b92cf79d4226cd88f8551fb7361649b' 'ccf672731b88fc6700b0b81737790365e1eea0066bad1bbf6b13dac1e5b42af69063838efca47a6d9c16ee3f6308e2e23b92cf79d4226cd88f8551fb7361649b'
'4f65af952441c0f54bb32049a149675e207f8993678423d369c4095c57476464614ac720eccc64d7a93a81268ad7ca41cae75ca7211bd7b78f9035f6e5341f04' '4f65af952441c0f54bb32049a149675e207f8993678423d369c4095c57476464614ac720eccc64d7a93a81268ad7ca41cae75ca7211bd7b78f9035f6e5341f04'
'9edd4520fb99856feb82d01935588add7f805aa180f2ed0fe169cb26576bc2e1d2c1e6ab11604d977cec6a4ad8f1d5be1413e1a366de59b89c5b869136538f8c' '9edd4520fb99856feb82d01935588add7f805aa180f2ed0fe169cb26576bc2e1d2c1e6ab11604d977cec6a4ad8f1d5be1413e1a366de59b89c5b869136538f8c'
'b92f9b3b10109c2f63099c12c38c8615dc9b22f846ba15ec4c004069a7291f166cd4cb6ebf820f62dbf934a3388a767feaa3fdf8b47cf0a04532b182caaec149') '71b2441e96c372f48bd6b1a1fabc2222c704b6a3c3d589c37e92ebcd892656e57e872ea9fbbf240a189f325e67527f4e542363b80ad4628a9cd94d28070ec6ad')
prepare() { prepare() {
cd "$pkgname" cd "$pkgname"

View File

@ -42,35 +42,35 @@ index 2b3a873fb..52615a345 100644
db-address: "" db-address: ""
diff --git a/go.mod b/go.mod diff --git a/go.mod b/go.mod
index 7d15b19dd..beb7b0235 100644 index 09796fba7..ff7e08475 100644
--- a/go.mod --- a/go.mod
+++ b/go.mod +++ b/go.mod
@@ -72,6 +72,7 @@ require ( @@ -74,6 +74,7 @@ require (
github.com/uptrace/bun/extra/bunotel v1.2.11 github.com/uptrace/bun/extra/bunotel v1.2.11
github.com/wagslane/go-password-validator v0.3.0 github.com/wagslane/go-password-validator v0.3.0
github.com/yuin/goldmark v1.7.8 github.com/yuin/goldmark v1.7.10
+ go.balki.me/anyhttp v0.5.0 + go.balki.me/anyhttp v0.5.0
go.opentelemetry.io/otel v1.34.0 go.opentelemetry.io/otel v1.35.0
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.34.0 go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.35.0
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.34.0 go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.34.0
diff --git a/go.sum b/go.sum diff --git a/go.sum b/go.sum
index 24176856b..a9680692a 100644 index 17885f27e..8a123642f 100644
--- a/go.sum --- a/go.sum
+++ b/go.sum +++ b/go.sum
@@ -620,6 +620,8 @@ github.com/yuin/goldmark v1.7.8 h1:iERMLn0/QJeHFhxSt3p6PeN9mGnvIKSpG9YYorDMnic= @@ -491,6 +491,8 @@ github.com/yuin/goldmark v1.7.10 h1:S+LrtBjRmqMac2UdtB6yyCEJm+UILZ2fefI4p7o0QpI=
github.com/yuin/goldmark v1.7.8/go.mod h1:uzxRWxtg69N339t3louHJ7+O03ezfj6PlliRlaOzY1E= github.com/yuin/goldmark v1.7.10/go.mod h1:ip/1k0VRfGynBgxOz0yCqHrbZXhcjxyuS66Brc7iBKg=
gitlab.com/NyaaaWhatsUpDoc/sqlite v1.35.0-concurrency-workaround h1:rSPHdoNXzXyWQUUeMEy8pdOFn8lH7XqdBRTS9G+jdTg= gitlab.com/NyaaaWhatsUpDoc/sqlite v1.37.0-concurrency-workaround h1:QbfrBqNKgAFSSK89fYf547vxDQuz8p6iJUzzAMrusNk=
gitlab.com/NyaaaWhatsUpDoc/sqlite v1.35.0-concurrency-workaround/go.mod h1:9cr2sicr7jIaWTBKQmAxQLfBv9LL0su4ZTEV+utt3ic= gitlab.com/NyaaaWhatsUpDoc/sqlite v1.37.0-concurrency-workaround/go.mod h1:5YiWv+YviqGMuGw4V+PNplcyaJ5v+vQd7TQOgkACoJM=
+go.balki.me/anyhttp v0.5.0 h1:uys0oRciBpZfwtxXAevScKy6amIQBXyDrcV0EtGF5zo= +go.balki.me/anyhttp v0.5.0 h1:uys0oRciBpZfwtxXAevScKy6amIQBXyDrcV0EtGF5zo=
+go.balki.me/anyhttp v0.5.0/go.mod h1:JhfekOIjgVODoVqUCficjpIgmB3wwlB7jhN0eN2EZ/s= +go.balki.me/anyhttp v0.5.0/go.mod h1:JhfekOIjgVODoVqUCficjpIgmB3wwlB7jhN0eN2EZ/s=
go.mongodb.org/mongo-driver v1.14.0 h1:P98w8egYRjYe3XDjxhYJagTokP/H6HzlsnojRgZRd80= go.mongodb.org/mongo-driver v1.17.3 h1:TQyXhnsWfWtgAhMtOgtYHMTkZIfBTpMTsMnd9ZBeHxQ=
go.mongodb.org/mongo-driver v1.14.0/go.mod h1:Vzb0Mk/pa7e6cWw85R4F/endUC3u0U9jGcNU603k65c= go.mongodb.org/mongo-driver v1.17.3/go.mod h1:Hy04i7O2kC4RS06ZrhPRqj/u4DTYkFDAAccj+rVKqgQ=
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA=
diff --git a/internal/config/config.go b/internal/config/config.go diff --git a/internal/config/config.go b/internal/config/config.go
index 8ce2105b4..93ad8d7b0 100644 index d4b3901e7..c63157f0c 100644
--- a/internal/config/config.go --- a/internal/config/config.go
+++ b/internal/config/config.go +++ b/internal/config/config.go
@@ -59,6 +59,7 @@ type Configuration struct { @@ -58,6 +58,7 @@ type Configuration struct {
BindAddress string `name:"bind-address" usage:"Bind address to use for the GoToSocial server (eg., 0.0.0.0, 172.138.0.9, [::], localhost). For ipv6, enclose the address in square brackets, eg [2001:db8::fed1]. Default binds to all interfaces."` BindAddress string `name:"bind-address" usage:"Bind address to use for the GoToSocial server (eg., 0.0.0.0, 172.138.0.9, [::], localhost). For ipv6, enclose the address in square brackets, eg [2001:db8::fed1]. Default binds to all interfaces."`
Port int `name:"port" usage:"Port to use for GoToSocial. Change this to 443 if you're running the binary directly on the host machine."` Port int `name:"port" usage:"Port to use for GoToSocial. Change this to 443 if you're running the binary directly on the host machine."`
TrustedProxies []string `name:"trusted-proxies" usage:"Proxies to trust when parsing x-forwarded headers into real IPs."` TrustedProxies []string `name:"trusted-proxies" usage:"Proxies to trust when parsing x-forwarded headers into real IPs."`
@ -78,7 +78,7 @@ index 8ce2105b4..93ad8d7b0 100644
SoftwareVersion string `name:"software-version" usage:""` SoftwareVersion string `name:"software-version" usage:""`
DbType string `name:"db-type" usage:"Database type: eg., postgres"` DbType string `name:"db-type" usage:"Database type: eg., postgres"`
@@ -194,6 +195,8 @@ type Configuration struct { @@ -192,6 +193,8 @@ type Configuration struct {
AdminMediaListRemoteOnly bool `name:"remote-only" usage:"list only remote attachments/emojis; if specified then local-only cannot also be true"` AdminMediaListRemoteOnly bool `name:"remote-only" usage:"list only remote attachments/emojis; if specified then local-only cannot also be true"`
RequestIDHeader string `name:"request-id-header" usage:"Header to extract the Request ID from. Eg.,'X-Request-Id'."` RequestIDHeader string `name:"request-id-header" usage:"Header to extract the Request ID from. Eg.,'X-Request-Id'."`
@ -88,7 +88,7 @@ index 8ce2105b4..93ad8d7b0 100644
type HTTPClientConfiguration struct { type HTTPClientConfiguration struct {
diff --git a/internal/config/defaults.go b/internal/config/defaults.go diff --git a/internal/config/defaults.go b/internal/config/defaults.go
index 78a8230d5..b8b2ff5f2 100644 index 9a507b421..4f63c2569 100644
--- a/internal/config/defaults.go --- a/internal/config/defaults.go
+++ b/internal/config/defaults.go +++ b/internal/config/defaults.go
@@ -233,4 +233,6 @@ @@ -233,4 +233,6 @@
@ -99,19 +99,10 @@ index 78a8230d5..b8b2ff5f2 100644
+ KalaclistaAllowedUnauthorizedGet: false, + KalaclistaAllowedUnauthorizedGet: false,
} }
diff --git a/internal/config/helpers.gen.go b/internal/config/helpers.gen.go diff --git a/internal/config/helpers.gen.go b/internal/config/helpers.gen.go
index 156c19fd5..ab12c44be 100644 index ac41a73e9..39266add6 100644
--- a/internal/config/helpers.gen.go --- a/internal/config/helpers.gen.go
+++ b/internal/config/helpers.gen.go +++ b/internal/config/helpers.gen.go
@@ -2,7 +2,7 @@ @@ -350,6 +350,31 @@ func GetTrustedProxies() []string { return global.GetTrustedProxies() }
// GoToSocial
// Copyright (C) GoToSocial Authors admin@gotosocial.org
// SPDX-License-Identifier: AGPL-3.0-or-later
-//
+//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
@@ -351,6 +351,31 @@ func GetTrustedProxies() []string { return global.GetTrustedProxies() }
// SetTrustedProxies safely sets the value for global configuration 'TrustedProxies' field // SetTrustedProxies safely sets the value for global configuration 'TrustedProxies' field
func SetTrustedProxies(v []string) { global.SetTrustedProxies(v) } func SetTrustedProxies(v []string) { global.SetTrustedProxies(v) }
@ -143,30 +134,7 @@ index 156c19fd5..ab12c44be 100644
// GetSoftwareVersion safely fetches the Configuration value for state's 'SoftwareVersion' field // GetSoftwareVersion safely fetches the Configuration value for state's 'SoftwareVersion' field
func (st *ConfigState) GetSoftwareVersion() (v string) { func (st *ConfigState) GetSoftwareVersion() (v string) {
st.mutex.RLock() st.mutex.RLock()
@@ -3328,19 +3353,13 @@ func (st *ConfigState) SetCacheConversationLastStatusIDsMemRatio(v float64) { @@ -4656,3 +4681,28 @@ func GetRequestIDHeader() string { return global.GetRequestIDHeader() }
}
// CacheConversationLastStatusIDsMemRatioFlag returns the flag name for the 'Cache.ConversationLastStatusIDsMemRatio' field
-func CacheConversationLastStatusIDsMemRatioFlag() string {
- return "cache-conversation-last-status-ids-mem-ratio"
-}
+func CacheConversationLastStatusIDsMemRatioFlag() string { return "cache-conversation-last-status-ids-mem-ratio" }
// GetCacheConversationLastStatusIDsMemRatio safely fetches the value for global configuration 'Cache.ConversationLastStatusIDsMemRatio' field
-func GetCacheConversationLastStatusIDsMemRatio() float64 {
- return global.GetCacheConversationLastStatusIDsMemRatio()
-}
+func GetCacheConversationLastStatusIDsMemRatio() float64 { return global.GetCacheConversationLastStatusIDsMemRatio() }
// SetCacheConversationLastStatusIDsMemRatio safely sets the value for global configuration 'Cache.ConversationLastStatusIDsMemRatio' field
-func SetCacheConversationLastStatusIDsMemRatio(v float64) {
- global.SetCacheConversationLastStatusIDsMemRatio(v)
-}
+func SetCacheConversationLastStatusIDsMemRatio(v float64) { global.SetCacheConversationLastStatusIDsMemRatio(v) }
// GetCacheDomainPermissionDraftMemRation safely fetches the Configuration value for state's 'Cache.DomainPermissionDraftMemRation' field
func (st *ConfigState) GetCacheDomainPermissionDraftMemRation() (v float64) {
@@ -4686,3 +4705,29 @@ func GetRequestIDHeader() string { return global.GetRequestIDHeader() }
// SetRequestIDHeader safely sets the value for global configuration 'RequestIDHeader' field // SetRequestIDHeader safely sets the value for global configuration 'RequestIDHeader' field
func SetRequestIDHeader(v string) { global.SetRequestIDHeader(v) } func SetRequestIDHeader(v string) { global.SetRequestIDHeader(v) }
@ -195,34 +163,6 @@ index 156c19fd5..ab12c44be 100644
+ +
+// SetKalaclistaAllowedUnauthorizedGet safely sets the value for global configuration 'KalaclistaAllowedUnauthorizedGet' field +// SetKalaclistaAllowedUnauthorizedGet safely sets the value for global configuration 'KalaclistaAllowedUnauthorizedGet' field
+func SetKalaclistaAllowedUnauthorizedGet(v bool) { global.SetKalaclistaAllowedUnauthorizedGet(v) } +func SetKalaclistaAllowedUnauthorizedGet(v bool) { global.SetKalaclistaAllowedUnauthorizedGet(v) }
+
diff --git a/internal/middleware/signaturecheck.go b/internal/middleware/signaturecheck.go
index ea63ec4f0..cb8b9df9a 100644
--- a/internal/middleware/signaturecheck.go
+++ b/internal/middleware/signaturecheck.go
@@ -33,7 +33,8 @@
sigHeader = string(httpsig.Signature)
authHeader = string(httpsig.Authorization)
// untyped error returned by httpsig when no signature is present
- noSigError = "neither \"" + sigHeader + "\" nor \"" + authHeader + "\" have signature parameters"
+ noSigError = "neither \"" + sigHeader + "\" nor \"" + authHeader + "\" have signature parameters"
+ bothSigError = "both \"" + sigHeader + "\" and \"" + authHeader + "\" have signature parameters"
)
// SignatureCheck returns a gin middleware for checking http signatures.
@@ -54,6 +55,12 @@ func SignatureCheck(uriBlocked func(context.Context, *url.URL) (bool, error)) fu
// Create the signature verifier from the request;
// this will error if the request wasn't signed.
verifier, err := httpsig.NewVerifier(c.Request)
+ if err != nil && err.Error() == bothSigError {
+ log.Debugf(ctx, "this request has both http signature headers, but fix it: %s", err)
+ c.Request.Header.Del(authHeader)
+ verifier, err = httpsig.NewVerifier(c.Request)
+ }
+
if err != nil {
// Only actually *abort* the request with 401
// if a signature was present but malformed.
diff --git a/internal/processing/fedi/common.go b/internal/processing/fedi/common.go diff --git a/internal/processing/fedi/common.go b/internal/processing/fedi/common.go
index 1a4d38bc1..1d62aacdb 100644 index 1a4d38bc1..1d62aacdb 100644
--- a/internal/processing/fedi/common.go --- a/internal/processing/fedi/common.go
@ -252,10 +192,10 @@ index 1a4d38bc1..1d62aacdb 100644
} }
diff --git a/internal/processing/fedi/emoji.go b/internal/processing/fedi/emoji.go diff --git a/internal/processing/fedi/emoji.go b/internal/processing/fedi/emoji.go
index 9ac0ea244..446e496c0 100644 index 9ac0ea244..1c8b0bda7 100644
--- a/internal/processing/fedi/emoji.go --- a/internal/processing/fedi/emoji.go
+++ b/internal/processing/fedi/emoji.go +++ b/internal/processing/fedi/emoji.go
@@ -20,15 +20,19 @@ @@ -20,14 +20,20 @@
import ( import (
"context" "context"
"fmt" "fmt"
@ -269,15 +209,15 @@ index 9ac0ea244..446e496c0 100644
// EmojiGet handles the GET for a federated emoji originating from this instance. // EmojiGet handles the GET for a federated emoji originating from this instance.
func (p *Processor) EmojiGet(ctx context.Context, requestedEmojiID string) (interface{}, gtserror.WithCode) { func (p *Processor) EmojiGet(ctx context.Context, requestedEmojiID string) (interface{}, gtserror.WithCode) {
if _, errWithCode := p.federator.AuthenticateFederatedRequest(ctx, ""); errWithCode != nil { if _, errWithCode := p.federator.AuthenticateFederatedRequest(ctx, ""); errWithCode != nil {
- return nil, errWithCode
+ if !(config.GetKalaclistaAllowedUnauthorizedGet() && errWithCode.Code() == http.StatusUnauthorized) { + if !(config.GetKalaclistaAllowedUnauthorizedGet() && errWithCode.Code() == http.StatusUnauthorized) {
+ return nil, errWithCode + return nil, errWithCode
+ } + }
+
return nil, errWithCode
} }
requestedEmoji, err := p.state.DB.GetEmojiByID(ctx, requestedEmojiID)
diff --git a/internal/processing/fedi/user.go b/internal/processing/fedi/user.go diff --git a/internal/processing/fedi/user.go b/internal/processing/fedi/user.go
index 79c1b4fdb..b980161c9 100644 index 79c1b4fdb..376191036 100644
--- a/internal/processing/fedi/user.go --- a/internal/processing/fedi/user.go
+++ b/internal/processing/fedi/user.go +++ b/internal/processing/fedi/user.go
@@ -21,9 +21,11 @@ @@ -21,9 +21,11 @@
@ -292,20 +232,19 @@ index 79c1b4fdb..b980161c9 100644
"github.com/superseriousbusiness/gotosocial/internal/db" "github.com/superseriousbusiness/gotosocial/internal/db"
"github.com/superseriousbusiness/gotosocial/internal/gtserror" "github.com/superseriousbusiness/gotosocial/internal/gtserror"
"github.com/superseriousbusiness/gotosocial/internal/uris" "github.com/superseriousbusiness/gotosocial/internal/uris"
@@ -67,6 +69,16 @@ func (p *Processor) UserGet(ctx context.Context, requestedUsername string, reque @@ -67,6 +69,15 @@ func (p *Processor) UserGet(ctx context.Context, requestedUsername string, reque
// we can serve a more complete profile. // we can serve a more complete profile.
pubKeyAuth, errWithCode := p.federator.AuthenticateFederatedRequest(ctx, requestedUsername) pubKeyAuth, errWithCode := p.federator.AuthenticateFederatedRequest(ctx, requestedUsername)
if errWithCode != nil { if errWithCode != nil {
+ // kalaclista modded: unauthorized-fetch
+ if config.GetKalaclistaAllowedUnauthorizedGet() && errWithCode.Code() == http.StatusUnauthorized { + if config.GetKalaclistaAllowedUnauthorizedGet() && errWithCode.Code() == http.StatusUnauthorized {
+ person, err := p.converter.AccountToAS(ctx, receiver) + person, err := p.converter.AccountToAS(ctx, receiver)
+ if err != nil { + if err != nil {
+ err := gtserror.Newf("error converting account: %w", err) + err := gtserror.Newf("error converting account: %w", err)
+ return nil, gtserror.NewErrorInternalError(err) + return nil, gtserror.NewErrorInternalError(err)
+ } + }
+
+ return data(person) + return data(person)
+ } + }
+
return nil, errWithCode // likely 401 return nil, errWithCode // likely 401
} }
@ -1241,10 +1180,10 @@ index 000000000..ee3d81ff1
+ return i.c + return i.c
+} +}
diff --git a/vendor/modules.txt b/vendor/modules.txt diff --git a/vendor/modules.txt b/vendor/modules.txt
index e053e6ce0..338ab8877 100644 index c0b7298f3..7a620f2fc 100644
--- a/vendor/modules.txt --- a/vendor/modules.txt
+++ b/vendor/modules.txt +++ b/vendor/modules.txt
@@ -959,6 +959,10 @@ github.com/yuin/goldmark/renderer @@ -957,6 +957,10 @@ github.com/yuin/goldmark/renderer
github.com/yuin/goldmark/renderer/html github.com/yuin/goldmark/renderer/html
github.com/yuin/goldmark/text github.com/yuin/goldmark/text
github.com/yuin/goldmark/util github.com/yuin/goldmark/util
@ -1252,6 +1191,6 @@ index e053e6ce0..338ab8877 100644
+## explicit; go 1.20 +## explicit; go 1.20
+go.balki.me/anyhttp +go.balki.me/anyhttp
+go.balki.me/anyhttp/idle +go.balki.me/anyhttp/idle
# go.mongodb.org/mongo-driver v1.14.0 # go.mongodb.org/mongo-driver v1.17.3
## explicit; go 1.18 ## explicit; go 1.18
go.mongodb.org/mongo-driver/bson go.mongodb.org/mongo-driver/bson