Skip to content

Commit

Permalink
fix: use fleetFromString function to prevent panic for unknown values
Browse files Browse the repository at this point in the history
  • Loading branch information
igor-sirotin committed Feb 23, 2024
1 parent f31f01d commit 83c98aa
Show file tree
Hide file tree
Showing 6 changed files with 17 additions and 7 deletions.
2 changes: 2 additions & 0 deletions scripts/open_database.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import sys, os, re
import sqlcipher3
import readline

from getpass import getpass
from common import PasswordFunctions

Expand Down
8 changes: 7 additions & 1 deletion src/app/core/fleets/fleet_configuration.nim
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import json, typetraits, tables, sequtils
import json, typetraits, tables, sequtils, strutils

type
Fleet* {.pure.} = enum
Expand Down Expand Up @@ -76,3 +76,9 @@ proc getMailservers*(self: FleetConfiguration, fleet: Fleet): Table[string, stri
result = initTable[string,string]()
return
result = self.fleet[$fleet][fleetKey]

proc fleetFromString*(fleet: string): Fleet {.inline.} =
try:
return parseEnum[Fleet](fleet)
except:
return Fleet.Undefined
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ proc init*(self: Controller) =
discard

proc getFleet*(self: Controller): string =
self.nodeConfigurationService.getFleetAsString()
return self.nodeConfigurationService.getFleetAsString()

proc changeFleetTo*(self: Controller, fleet: string) =
if (not self.nodeConfigurationService.setFleet(fleet)):
Expand Down
4 changes: 2 additions & 2 deletions src/app_service/service/node_configuration/service.nim
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ proc getFleet*(self: Service): Fleet =
result = self.settingsService.getFleet()
if result == Fleet.Undefined:
let fleetFromNodeConfig = self.configuration.ClusterConfig.Fleet
result = parseEnum[Fleet](fleetFromNodeConfig)
result = fleetFromString(fleetFromNodeConfig)

proc getFleetAsString*(self: Service): string =
result = $self.getFleet()
Expand All @@ -148,7 +148,7 @@ proc setFleet*(self: Service, fleet: string): bool =
error "error saving fleet ", procName="setFleet"
return false

let fleetType = parseEnum[Fleet](fleet)
let fleetType = fleetFromString(fleet)
var newConfiguration = self.configuration
newConfiguration.ClusterConfig.Fleet = fleet
newConfiguration.ClusterConfig.BootNodes = self.fleetConfiguration.getNodes(fleetType, FleetNodes.Bootnodes)
Expand Down
6 changes: 4 additions & 2 deletions src/app_service/service/settings/service.nim
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ export stickers_dto
# Default values:
const DEFAULT_CURRENCY* = "USD"
const DEFAULT_TELEMETRY_SERVER_URL* = "https://telemetry.status.im"
const DEFAULT_FLEET* = $Fleet.ShardsTest
const DEFAULT_FLEET* = Fleet.ShardsTest

# Signals:
const SIGNAL_CURRENCY_UPDATED* = "currencyUpdated"
Expand Down Expand Up @@ -398,7 +398,7 @@ QtObject:

proc getFleet*(self: Service): Fleet =
let fleetAsString = self.getFleetAsString()
return parseEnum[Fleet](fleetAsString)
return fleetFromString(fleetAsString)

proc getCurrentUserStatus*(self: Service): CurrentUserStatus =
self.settings.currentUserStatus
Expand All @@ -413,6 +413,8 @@ QtObject:
return ""

proc pinMailserver*(self: Service, mailserverID: string, fleet: Fleet): bool =
if fleet == Fleet.Undefined:
return false
var newMailserverJsonObj = self.settings.pinnedMailserver.pinnedMailserverToJsonNode()
newMailserverJsonObj[$fleet] = %* mailserverID
if(self.saveSetting(KEY_PINNED_MAILSERVERS, newMailserverJsonObj)):
Expand Down

0 comments on commit 83c98aa

Please sign in to comment.