Use ServerKeyAPI as keyring (#1110)

* Use ServerKeyAPI as keyring

* Update fetcher name for debug logs
This commit is contained in:
Neil Alexander 2020-06-10 11:02:03 +01:00 committed by GitHub
parent 464718c3e6
commit d9d6f4568c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -17,9 +17,13 @@ type ServerKeyAPI struct {
} }
func (s *ServerKeyAPI) KeyRing() *gomatrixserverlib.KeyRing { func (s *ServerKeyAPI) KeyRing() *gomatrixserverlib.KeyRing {
// Return a real keyring - one that has the real database and real // Return a keyring that forces requests to be proxied through the
// fetchers. // below functions. That way we can enforce things like validity
return &s.OurKeyRing // and keeping the cache up-to-date.
return &gomatrixserverlib.KeyRing{
KeyDatabase: s,
KeyFetchers: []gomatrixserverlib.KeyFetcher{s},
}
} }
func (s *ServerKeyAPI) StoreKeys( func (s *ServerKeyAPI) StoreKeys(
@ -84,5 +88,5 @@ func (s *ServerKeyAPI) FetchKeys(
} }
func (s *ServerKeyAPI) FetcherName() string { func (s *ServerKeyAPI) FetcherName() string {
return s.OurKeyRing.KeyDatabase.FetcherName() return fmt.Sprintf("ServerKeyAPI (wrapping %q)", s.OurKeyRing.KeyDatabase.FetcherName())
} }