From b5cb1d153458ad83abdfbebed7405dd9da159cb8 Mon Sep 17 00:00:00 2001 From: Kegsay Date: Fri, 31 Jul 2020 14:40:45 +0100 Subject: Fix edge cases around device lists (#1234) * Fix New users appear in /keys/changes * Create blank device keys when logging in on a new device * Add PerformDeviceUpdate and fix a few bugs - Correct device deletion query on sqlite - Return no keys on /keys/query rather than an empty key * Unbreak sqlite properly * Use a real DB for currentstateserver integration tests * Race fix --- keyserver/internal/internal.go | 3 +++ 1 file changed, 3 insertions(+) (limited to 'keyserver') diff --git a/keyserver/internal/internal.go b/keyserver/internal/internal.go index 480d1084..bb828663 100644 --- a/keyserver/internal/internal.go +++ b/keyserver/internal/internal.go @@ -206,6 +206,9 @@ func (a *KeyInternalAPI) QueryKeys(ctx context.Context, req *api.QueryKeysReques res.DeviceKeys[userID] = make(map[string]json.RawMessage) } for _, dk := range deviceKeys { + if len(dk.KeyJSON) == 0 { + continue // don't include blank keys + } // inject display name if known dk.KeyJSON, _ = sjson.SetBytes(dk.KeyJSON, "unsigned", struct { DisplayName string `json:"device_display_name,omitempty"` -- cgit v1.2.3