mirror of
https://github.com/logos-messaging/logos-messaging-nim.git
synced 2026-01-03 22:43:09 +00:00
fix: store config without db-path leads SIGSEGV (#1218)
This commit is contained in:
parent
e39efc28cf
commit
53912a19fc
@ -19,6 +19,10 @@ logScope:
|
||||
|
||||
|
||||
proc init(db: SqliteDatabase): MessageStoreResult[void] =
|
||||
## Misconfiguration can lead to nil DB
|
||||
if db.isNil():
|
||||
return err("db not initialized")
|
||||
|
||||
# Create table, if doesn't exist
|
||||
let resCreate = createTable(db)
|
||||
if resCreate.isErr():
|
||||
|
||||
@ -61,6 +61,9 @@ proc encode*(storedInfo: StoredInfo): PeerStorageResult[ProtoBuffer] =
|
||||
##########################
|
||||
|
||||
proc new*(T: type WakuPeerStorage, db: SqliteDatabase): PeerStorageResult[T] =
|
||||
## Misconfiguration can lead to nil DB
|
||||
if db.isNil():
|
||||
return err("db not initialized")
|
||||
|
||||
## Create the "Peer" table
|
||||
## It contains:
|
||||
|
||||
@ -886,20 +886,25 @@ when isMainModule:
|
||||
storeTuple.pStorage = res.value
|
||||
|
||||
if conf.persistMessages:
|
||||
if conf.sqliteStore:
|
||||
if conf.sqliteStore:
|
||||
debug "setting up sqlite-only store"
|
||||
let res = SqliteStore.init(sqliteDatabase)
|
||||
if res.isErr():
|
||||
warn "failed to init message store", err = res.error
|
||||
waku_node_errors.inc(labelValues = ["init_store_failure"])
|
||||
else:
|
||||
storeTuple.mStorage = res.value
|
||||
else:
|
||||
elif not sqliteDatabase.isNil():
|
||||
debug "setting up dual message store"
|
||||
let res = DualMessageStore.init(sqliteDatabase, conf.storeCapacity)
|
||||
if res.isErr():
|
||||
warn "failed to init message store", err = res.error
|
||||
waku_node_errors.inc(labelValues = ["init_store_failure"])
|
||||
else:
|
||||
storeTuple.mStorage = res.value
|
||||
else:
|
||||
debug "setting up in-memory store"
|
||||
storeTuple.mStorage = StoreQueueRef.new(conf.storeCapacity)
|
||||
|
||||
ok(storeTuple)
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user