Skip to content
Snippets Groups Projects
Commit f8a7eb29 authored by Richard T. Carback III's avatar Richard T. Carback III
Browse files

Add check if we were initially loaded as a legacy system

parent b5c2cfd4
No related branches found
No related tags found
1 merge request!510Release
...@@ -2,10 +2,10 @@ package e2e ...@@ -2,10 +2,10 @@ package e2e
import ( import (
"encoding/json" "encoding/json"
jww "github.com/spf13/jwalterweatherman"
"strings"
"time" "time"
jww "github.com/spf13/jwalterweatherman"
"gitlab.com/xx_network/primitives/netTime" "gitlab.com/xx_network/primitives/netTime"
"github.com/pkg/errors" "github.com/pkg/errors"
...@@ -39,6 +39,7 @@ type manager struct { ...@@ -39,6 +39,7 @@ type manager struct {
kv *versioned.KV kv *versioned.KV
} }
const legacyE2EKey = "legacyE2ESystem"
const e2eRekeyParamsKey = "e2eRekeyParams" const e2eRekeyParamsKey = "e2eRekeyParams"
const e2eRekeyParamsVer = 0 const e2eRekeyParamsVer = 0
...@@ -102,9 +103,12 @@ func LoadLegacy(kv *versioned.KV, net cmix.Client, myID *id.ID, ...@@ -102,9 +103,12 @@ func LoadLegacy(kv *versioned.KV, net cmix.Client, myID *id.ID,
// Check if values are already written. If they exist on disk/memory already, // Check if values are already written. If they exist on disk/memory already,
// this would be a case where LoadLegacy is most likely not the correct // this would be a case where LoadLegacy is most likely not the correct
// code-path the caller should be following. // code-path the caller should be following.
if _, err := kv.Get(e2eRekeyParamsKey, e2eRekeyParamsVer); err != nil && !strings.Contains(err.Error(), "object not found") { if _, err := kv.Get(e2eRekeyParamsKey, e2eRekeyParamsVer); err == nil {
return nil, errors.New("E2E rekey params are already on disk, " + if _, err = kv.Get(legacyE2EKey, e2eRekeyParamsVer); err != nil {
"LoadLegacy should not be called") return nil, errors.New("E2E rekey params" +
" are already on disk, " +
"LoadLegacy should not be called")
}
} }
// Store the rekey params to disk/memory // Store the rekey params to disk/memory
...@@ -113,6 +117,17 @@ func LoadLegacy(kv *versioned.KV, net cmix.Client, myID *id.ID, ...@@ -113,6 +117,17 @@ func LoadLegacy(kv *versioned.KV, net cmix.Client, myID *id.ID,
Timestamp: netTime.Now(), Timestamp: netTime.Now(),
Data: rekeyParamsData, Data: rekeyParamsData,
}) })
if err != nil {
return nil, err
}
err = kv.Set(legacyE2EKey, e2eRekeyParamsVer, &versioned.Object{
Version: e2eRekeyParamsVer,
Timestamp: netTime.Now(),
Data: []byte{1},
})
if err != nil {
return nil, err
}
// Load the legacy data // Load the legacy data
return loadE2E(kv, net, myID, grp, rng, events) return loadE2E(kv, net, myID, grp, rng, events)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment