From 9da84c1e790b77bfbed1b38b5eb1b61801237ce6 Mon Sep 17 00:00:00 2001 From: Jesse Peterson Date: Mon, 6 Jan 2020 13:22:18 -0800 Subject: [PATCH] Fixes #546. Save a record of the last imported DEP token and prefer use that one first when we read out tokens back. (#633) --- platform/config/builtin/db_deptoken.go | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/platform/config/builtin/db_deptoken.go b/platform/config/builtin/db_deptoken.go index 788abbca..e368a874 100644 --- a/platform/config/builtin/db_deptoken.go +++ b/platform/config/builtin/db_deptoken.go @@ -22,6 +22,10 @@ func (db *DB) AddToken(consumerKey string, json []byte) error { if err != nil { return err } + err = b.Put([]byte("last_added"), []byte(consumerKey)) + if err != nil { + return err + } return b.Put([]byte(consumerKey), json) }) if err != nil { @@ -33,11 +37,13 @@ func (db *DB) AddToken(consumerKey string, json []byte) error { func (db *DB) DEPTokens() ([]config.DEPToken, error) { var result []config.DEPToken + var lastAdded string err := db.View(func(tx *bolt.Tx) error { b := tx.Bucket([]byte(depTokenBucket)) if b == nil { return nil } + lastAdded = string(b.Get([]byte("last_added"))) c := b.Cursor() prefix := []byte("CK_") @@ -48,7 +54,14 @@ func (db *DB) DEPTokens() ([]config.DEPToken, error) { // TODO: log problematic DEP token, or remove altogether? continue } - result = append(result, depToken) + if lastAdded == depToken.ConsumerKey { + // the server merely takes the first DEP token. let's + // make sure the most recent one is the one that's + // returned first + result = append([]config.DEPToken{depToken}, result...) + } else { + result = append(result, depToken) + } } return nil })