mirror of
https://github.com/matrix-org/dendrite.git
synced 2025-12-20 05:13:11 -06:00
Move things about a bit
This commit is contained in:
parent
ad0f1ee2ff
commit
445082d6c5
|
|
@ -63,3 +63,50 @@ func (s *httpServerKeyInternalAPI) KeyRing() *gomatrixserverlib.KeyRing {
|
||||||
KeyFetchers: []gomatrixserverlib.KeyFetcher{s},
|
KeyFetchers: []gomatrixserverlib.KeyFetcher{s},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *httpServerKeyInternalAPI) FetcherName() string {
|
||||||
|
return "httpServerKeyInternalAPI"
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *httpServerKeyInternalAPI) StoreKeys(
|
||||||
|
ctx context.Context,
|
||||||
|
results map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.PublicKeyLookupResult,
|
||||||
|
) error {
|
||||||
|
request := InputPublicKeysRequest{
|
||||||
|
Keys: make(map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.PublicKeyLookupResult),
|
||||||
|
}
|
||||||
|
response := InputPublicKeysResponse{}
|
||||||
|
for req, res := range results {
|
||||||
|
request.Keys[req] = res
|
||||||
|
s.immutableCache.StoreServerKey(req, res)
|
||||||
|
}
|
||||||
|
return s.InputPublicKeys(ctx, &request, &response)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *httpServerKeyInternalAPI) FetchKeys(
|
||||||
|
ctx context.Context,
|
||||||
|
requests map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.Timestamp,
|
||||||
|
) (map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.PublicKeyLookupResult, error) {
|
||||||
|
result := make(map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.PublicKeyLookupResult)
|
||||||
|
request := QueryPublicKeysRequest{
|
||||||
|
Requests: make(map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.Timestamp),
|
||||||
|
}
|
||||||
|
response := QueryPublicKeysResponse{
|
||||||
|
Results: make(map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.PublicKeyLookupResult),
|
||||||
|
}
|
||||||
|
for req, ts := range requests {
|
||||||
|
if res, ok := s.immutableCache.GetServerKey(req); ok {
|
||||||
|
result[req] = res
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
request.Requests[req] = ts
|
||||||
|
}
|
||||||
|
err := s.QueryPublicKeys(ctx, &request, &response)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
for req, res := range response.Results {
|
||||||
|
result[req] = res
|
||||||
|
}
|
||||||
|
return result, nil
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,54 +0,0 @@
|
||||||
package api
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
|
|
||||||
"github.com/matrix-org/gomatrixserverlib"
|
|
||||||
)
|
|
||||||
|
|
||||||
func (s *httpServerKeyInternalAPI) FetcherName() string {
|
|
||||||
return "httpServerKeyInternalAPI"
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *httpServerKeyInternalAPI) StoreKeys(
|
|
||||||
ctx context.Context,
|
|
||||||
results map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.PublicKeyLookupResult,
|
|
||||||
) error {
|
|
||||||
request := InputPublicKeysRequest{
|
|
||||||
Keys: make(map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.PublicKeyLookupResult),
|
|
||||||
}
|
|
||||||
response := InputPublicKeysResponse{}
|
|
||||||
for req, res := range results {
|
|
||||||
request.Keys[req] = res
|
|
||||||
s.immutableCache.StoreServerKey(req, res)
|
|
||||||
}
|
|
||||||
return s.InputPublicKeys(ctx, &request, &response)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *httpServerKeyInternalAPI) FetchKeys(
|
|
||||||
ctx context.Context,
|
|
||||||
requests map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.Timestamp,
|
|
||||||
) (map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.PublicKeyLookupResult, error) {
|
|
||||||
result := make(map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.PublicKeyLookupResult)
|
|
||||||
request := QueryPublicKeysRequest{
|
|
||||||
Requests: make(map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.Timestamp),
|
|
||||||
}
|
|
||||||
response := QueryPublicKeysResponse{
|
|
||||||
Results: make(map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.PublicKeyLookupResult),
|
|
||||||
}
|
|
||||||
for req, ts := range requests {
|
|
||||||
if res, ok := s.immutableCache.GetServerKey(req); ok {
|
|
||||||
result[req] = res
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
request.Requests[req] = ts
|
|
||||||
}
|
|
||||||
err := s.QueryPublicKeys(ctx, &request, &response)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
for req, res := range response.Results {
|
|
||||||
result[req] = res
|
|
||||||
}
|
|
||||||
return result, nil
|
|
||||||
}
|
|
||||||
Loading…
Reference in a new issue