Cap timeout, move cross-signing section

This commit is contained in:
Neil Alexander 2022-10-24 09:32:28 +01:00
parent c762abe1ef
commit b86529f3f8
No known key found for this signature in database
GPG key ID: A02A2019A2BB0944
2 changed files with 9 additions and 5 deletions

View file

@ -99,7 +99,11 @@ func (r *queryKeysRequest) GetTimeout() time.Duration {
if r.Timeout == 0 {
return 10 * time.Second
}
return time.Duration(r.Timeout) * time.Millisecond
timeout := time.Duration(r.Timeout) * time.Millisecond
if timeout > time.Second*20 {
timeout = time.Second * 20
}
return timeout
}
func QueryKeys(req *http.Request, keyAPI api.ClientKeyAPI, device *userapi.Device) util.JSONResponse {

View file

@ -257,10 +257,7 @@ func (a *KeyInternalAPI) QueryKeys(ctx context.Context, req *api.QueryKeysReques
res.UserSigningKeys = make(map[string]gomatrixserverlib.CrossSigningKey)
res.Failures = make(map[string]interface{})
logrus.Print("QueryKeys:", req.UserID, req.UserToDevices)
// get cross-signing keys from the database
a.crossSigningKeysFromDatabase(ctx, req, res)
logrus.Print("QueryKeys:", req.UserID, req.Timeout, req.UserToDevices)
// make a map from domain to device keys
domainToDeviceKeys := make(map[string]map[string][]string)
@ -338,6 +335,9 @@ func (a *KeyInternalAPI) QueryKeys(ctx context.Context, req *api.QueryKeysReques
a.queryRemoteKeys(ctx, req.Timeout, res, domainToDeviceKeys, domainToCrossSigningKeys)
}
// get cross-signing keys from the database
a.crossSigningKeysFromDatabase(ctx, req, res)
// Finally, append signatures that we know about
// TODO: This is horrible because we need to round-trip the signature from
// JSON, add the signatures and marshal it again, for some reason?