If the storage backend selected by the user during core setup cannot
be initialized, the problem shall be communicated to the client and
the user can start over; the core shall not exit in this case.
Ensure that failure to initialize the selected backend only terminates
the core if it's not being setup.
return false; // trigger setup process
if (storage->setup(settings))
return initStorage(backend, settings, false);
+ return false;
+
// if initialization wasn't successful, we quit to keep from coming up unconfigured
case Storage::NotAvailable:
qCritical() << "FATAL: Selected storage backend is not available:" << backend;
- exit(EXIT_FAILURE);
+ if (!setup)
+ exit(EXIT_FAILURE);
+ return false;
+
case Storage::IsReady:
// delete all other backends
_storageBackends.remove(backend);