fix(api): don't crash requests after failing to unmarshal tokens (fixes #9909) (#9912)

Unclear why this would happen, but apparently it does?
This commit is contained in:
Jakob Borg
2025-01-09 21:47:10 +01:00
committed by GitHub
parent 0c1df81ee9
commit ab20c16982
2 changed files with 9 additions and 5 deletions

View File

@@ -402,6 +402,9 @@ func (s *service) Serve(ctx context.Context) error {
// care about we log ourselves from the handlers.
ErrorLog: log.New(io.Discard, "", 0),
}
if shouldDebugHTTP() {
srv.ErrorLog = log.Default()
}
l.Infoln("GUI and API listening on", listener.Addr())
l.Infoln("Access the GUI via the following URL:", guiCfg.URL())

View File

@@ -36,11 +36,12 @@ type tokenManager struct {
}
func newTokenManager(key string, miscDB *db.NamespacedKV, lifetime time.Duration, maxItems int) *tokenManager {
tokens := &apiproto.TokenSet{
Tokens: make(map[string]int64),
}
var tokens apiproto.TokenSet
if bs, ok, _ := miscDB.Bytes(key); ok {
_ = proto.Unmarshal(bs, tokens) // best effort
_ = proto.Unmarshal(bs, &tokens) // best effort
}
if tokens.Tokens == nil {
tokens.Tokens = make(map[string]int64)
}
return &tokenManager{
key: key,
@@ -49,7 +50,7 @@ func newTokenManager(key string, miscDB *db.NamespacedKV, lifetime time.Duration
maxItems: maxItems,
timeNow: time.Now,
mut: sync.NewMutex(),
tokens: tokens,
tokens: &tokens,
}
}