tangled
alpha
login
or
join now
julien.rbrt.fr
/
vow
forked from
hailey.at/cocoon
0
fork
atom
Vow, uncensorable PDS written in Go
0
fork
atom
overview
issues
pulls
pipelines
fix: resolve local handle first
julien.rbrt.fr
1 day ago
d51be610
aa4d6448
+12
-2
1 changed file
expand all
collapse all
unified
split
server
handle_server_resolve_handle.go
+12
-2
server/handle_server_resolve_handle.go
···
3
3
import (
4
4
"context"
5
5
"net/http"
6
6
+
6
7
"pkg.rbrt.fr/vow/identity"
7
8
8
9
"github.com/bluesky-social/indigo/atproto/syntax"
···
10
11
)
11
12
12
13
func (s *Server) handleResolveHandle(w http.ResponseWriter, r *http.Request) {
14
14
+
ctx := r.Context()
13
15
logger := s.logger.With("name", "handleServerResolveHandle")
14
16
15
17
type Resp struct {
···
29
31
return
30
32
}
31
33
32
32
-
ctx := context.WithValue(r.Context(), identity.SkipCacheKey, true)
33
33
-
did, err := s.passport.ResolveHandle(ctx, parsed.String())
34
34
+
// Check local accounts first before hitting DNS / well-known.
35
35
+
if actor, err := s.getActorByHandle(ctx, parsed.String()); err == nil {
36
36
+
s.writeJSON(w, 200, Resp{Did: actor.Did})
37
37
+
return
38
38
+
}
39
39
+
40
40
+
did, err := s.passport.ResolveHandle(
41
41
+
context.WithValue(ctx, identity.SkipCacheKey, true),
42
42
+
parsed.String(),
43
43
+
)
34
44
if err != nil {
35
45
logger.Error("error resolving handle", "error", err)
36
46
helpers.ServerError(w, nil)