From 2022f3f874b63401e7c47d78d41a9a25af6cdeae Mon Sep 17 00:00:00 2001 From: Neil Alexander Date: Tue, 22 Feb 2022 15:21:58 +0000 Subject: [PATCH] Single return value --- keyserver/api/api.go | 17 ++++++++++------- keyserver/internal/internal.go | 5 +---- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/keyserver/api/api.go b/keyserver/api/api.go index 6e390c33e..54eb04f8a 100644 --- a/keyserver/api/api.go +++ b/keyserver/api/api.go @@ -18,7 +18,6 @@ import ( "bytes" "context" "encoding/json" - "fmt" "strings" "time" @@ -75,20 +74,24 @@ type DeviceMessage struct { DeviceChangeID int64 } -func (m1 *DeviceMessage) DeviceKeysEqual(m2 *DeviceMessage) (bool, error) { +// DeviceKeysEqual returns true if the device keys updates contain the +// same display name and key JSON. This will return false if either of +// the updates is not a device keys update, or if the user ID/device ID +// differ between the two. +func (m1 *DeviceMessage) DeviceKeysEqual(m2 *DeviceMessage) bool { if m1.DeviceKeys == nil || m2.DeviceKeys == nil { - return false, fmt.Errorf("not device keys") + return false } if m1.UserID != m2.UserID || m1.DeviceID != m2.DeviceID { - return false, fmt.Errorf("different user ID or device ID") + return false } if m1.DisplayName != m2.DisplayName { - return false, nil // different display names + return false // different display names } if len(m1.KeyJSON) == 0 || len(m2.KeyJSON) == 0 { - return false, nil // either is empty + return false // either is empty } - return bytes.Equal(m1.KeyJSON, m2.KeyJSON), nil + return bytes.Equal(m1.KeyJSON, m2.KeyJSON) } // DeviceKeys represents a set of device keys for a single device diff --git a/keyserver/internal/internal.go b/keyserver/internal/internal.go index c6f34534f..dc3c404bd 100644 --- a/keyserver/internal/internal.go +++ b/keyserver/internal/internal.go @@ -718,10 +718,7 @@ func emitDeviceKeyChanges(producer KeyChangeProducer, existing, new []api.Device for _, existingKey := range existing { // Do not treat the absence of keys as equal, or else we will not emit key changes // when users delete devices which never had a key to begin with as both KeyJSONs are nil. - if equal, err := existingKey.DeviceKeysEqual(&newKey); err != nil { - // One of the keys was not a DeviceKeys or the user ID/device ID did not match. - continue - } else if equal { + if existingKey.DeviceKeysEqual(&newKey) { exists = true break }