/***************************************************************************
- * Copyright (C) 2005-2015 by the Quassel Project *
+ * Copyright (C) 2005-2016 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
"to work."));
exit(1); // TODO make this less brutal (especially for mono client -> popup)
}
+
qWarning() << "Core is currently not configured! Please connect with a Quassel Client for basic setup.";
+
+ if (!cs.isWritable()) {
+ qWarning() << "Cannot write quasselcore configuration; probably a permission problem.";
+ exit(EXIT_FAILURE);
+ }
+
}
if (Quassel::isOptionSet("add-user")) {
return tr("Could not setup storage!");
}
- saveBackendSettings(backend, setupData);
+ if (!saveBackendSettings(backend, setupData)) {
+ return tr("Could not save backend settings, probably a permission problem.");
+ }
quInfo() << qPrintable(tr("Creating admin user..."));
_storage->addUser(adminUser, adminPassword);
}
+bool Core::reloadCerts()
+{
+#ifdef HAVE_SSL
+ SslServer *sslServerv4 = qobject_cast<SslServer *>(&instance()->_server);
+ bool retv4 = sslServerv4->reloadCerts();
+
+ SslServer *sslServerv6 = qobject_cast<SslServer *>(&instance()->_v6server);
+ bool retv6 = sslServerv6->reloadCerts();
+
+ return retv4 && retv6;
+#else
+ // SSL not supported, don't mark configuration reload as failed
+ return true;
+#endif
+}
+
+
bool Core::startListening()
{
// in mono mode we only start a local port if a port is specified in the cli call
v["Description"] = backend->description();
v["SetupKeys"] = backend->setupKeys();
v["SetupDefaults"] = backend->setupDefaults();
+ v["IsDefault"] = isStorageBackendDefault(backend);
backends.append(v);
}
return backends;
Storage::State storageState = storage->init(settings);
switch (storageState) {
case Storage::IsReady:
- saveBackendSettings(backend, settings);
+ if (!saveBackendSettings(backend, settings)) {
+ qCritical() << qPrintable(QString("Could not save backend settings, probably a permission problem."));
+ }
qWarning() << "Switched backend to:" << qPrintable(backend);
qWarning() << "Backend already initialized. Skipping Migration";
return true;
return false;
}
- saveBackendSettings(backend, settings);
+ if (!saveBackendSettings(backend, settings)) {
+ qCritical() << qPrintable(QString("Could not save backend settings, probably a permission problem."));
+ }
qWarning() << "Switched backend to:" << qPrintable(backend);
break;
}
storage = 0;
if (reader->migrateTo(writer)) {
qDebug() << "Migration finished!";
- saveBackendSettings(backend, settings);
+ if (!saveBackendSettings(backend, settings)) {
+ qCritical() << qPrintable(QString("Could not save backend settings, probably a permission problem."));
+ return false;
+ }
return true;
}
return false;
}
-void Core::saveBackendSettings(const QString &backend, const QVariantMap &settings)
+bool Core::saveBackendSettings(const QString &backend, const QVariantMap &settings)
{
QVariantMap dbsettings;
dbsettings["Backend"] = backend;
dbsettings["ConnectionProperties"] = settings;
- CoreSettings().setStorageSettings(dbsettings);
+ CoreSettings s = CoreSettings();
+ s.setStorageSettings(dbsettings);
+ return s.sync();
}