summaryrefslogtreecommitdiff
path: root/internal/processing/instance.go
diff options
context:
space:
mode:
authorLibravatar tobi <31960611+tsmethurst@users.noreply.github.com>2023-05-07 19:53:21 +0200
committerLibravatar GitHub <noreply@github.com>2023-05-07 18:53:21 +0100
commit37b4d9d179afa470a7faee9ed0c6119cc8b613c0 (patch)
treeffa42dc31ba609cedbed29b81956142539f4a7e9 /internal/processing/instance.go
parent[bugfix] Return languages in api/v1/instance (#1741) (diff)
downloadgotosocial-37b4d9d179afa470a7faee9ed0c6119cc8b613c0.tar.xz
[bugfix] Punycode fixes (#1743)
Co-authored-by: kim <grufwub@gmail.com> Co-authored-by: kim <89579420+NyaaaWhatsUpDoc@users.noreply.github.com>
Diffstat (limited to 'internal/processing/instance.go')
-rw-r--r--internal/processing/instance.go36
1 files changed, 26 insertions, 10 deletions
diff --git a/internal/processing/instance.go b/internal/processing/instance.go
index 88c5c7b67..a9d849fa1 100644
--- a/internal/processing/instance.go
+++ b/internal/processing/instance.go
@@ -27,6 +27,7 @@ import (
"github.com/superseriousbusiness/gotosocial/internal/db"
"github.com/superseriousbusiness/gotosocial/internal/gtserror"
"github.com/superseriousbusiness/gotosocial/internal/gtsmodel"
+ "github.com/superseriousbusiness/gotosocial/internal/log"
"github.com/superseriousbusiness/gotosocial/internal/text"
"github.com/superseriousbusiness/gotosocial/internal/util"
"github.com/superseriousbusiness/gotosocial/internal/validate"
@@ -79,8 +80,15 @@ func (p *Processor) InstancePeersGet(ctx context.Context, includeSuspended bool,
}
for _, i := range instances {
- domain := &apimodel.Domain{Domain: i.Domain}
- domains = append(domains, domain)
+ // Domain may be in Punycode,
+ // de-punify it just in case.
+ d, err := util.DePunify(i.Domain)
+ if err != nil {
+ log.Errorf(ctx, "couldn't depunify domain %s: %s", i.Domain, err)
+ continue
+ }
+
+ domains = append(domains, &apimodel.Domain{Domain: d})
}
}
@@ -90,17 +98,25 @@ func (p *Processor) InstancePeersGet(ctx context.Context, includeSuspended bool,
return nil, gtserror.NewErrorInternalError(err)
}
- for _, d := range domainBlocks {
- if *d.Obfuscate {
- d.Domain = obfuscate(d.Domain)
+ for _, domainBlock := range domainBlocks {
+ // Domain may be in Punycode,
+ // de-punify it just in case.
+ d, err := util.DePunify(domainBlock.Domain)
+ if err != nil {
+ log.Errorf(ctx, "couldn't depunify domain %s: %s", domainBlock.Domain, err)
+ continue
}
- domain := &apimodel.Domain{
- Domain: d.Domain,
- SuspendedAt: util.FormatISO8601(d.CreatedAt),
- PublicComment: d.PublicComment,
+ if *domainBlock.Obfuscate {
+ // Obfuscate the de-punified version.
+ d = obfuscate(d)
}
- domains = append(domains, domain)
+
+ domains = append(domains, &apimodel.Domain{
+ Domain: d,
+ SuspendedAt: util.FormatISO8601(domainBlock.CreatedAt),
+ PublicComment: domainBlock.PublicComment,
+ })
}
}