From a14e7e947e31d28644edb1369a39153a75a93b4d Mon Sep 17 00:00:00 2001 From: Lykin <137850705+tiny-craft@users.noreply.github.com> Date: Wed, 7 Aug 2024 11:25:54 +0800 Subject: [PATCH] fix: compatible when the `INFO` command is unavailable --- backend/services/browser_service.go | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/backend/services/browser_service.go b/backend/services/browser_service.go index 71e6baa..1e52436 100644 --- a/backend/services/browser_service.go +++ b/backend/services/browser_service.go @@ -156,25 +156,27 @@ func (b *browserService) OpenConnection(name string) (resp types.JSResp) { } else { // get database info var res string - res, err = client.Info(ctx, "keyspace").Result() - if err != nil { - resp.Msg = "get server info fail:" + err.Error() - return + info := map[string]map[string]string{} + if res, err = client.Info(ctx, "keyspace").Result(); err != nil { + //resp.Msg = "get server info fail:" + err.Error() + //return + } else { + info = b.parseInfo(res) } - info := b.parseInfo(res) if totaldb <= 0 { // cannot retrieve the database count by "CONFIG GET databases", try to get max index from keyspace - keyspace := info["Keyspace"] - var db, maxDB int - for dbName := range keyspace { - if db, err = strconv.Atoi(strings.TrimLeft(dbName, "db")); err == nil { - if maxDB < db { - maxDB = db + if keyspace := info["Keyspace"]; len(keyspace) > 0 { + var db, maxDB int + for dbName := range keyspace { + if db, err = strconv.Atoi(strings.TrimLeft(dbName, "db")); err == nil { + if maxDB < db { + maxDB = db + } } } + totaldb = maxDB + 1 } - totaldb = maxDB + 1 } queryDB := func(idx int) types.ConnectionDB {