QObject(), QtService<QCoreApplication>(argc, argv, "LocalMyList Daemon")
{
setServiceDescription("LocalMyList Daemon");
+ runUdpClient = false;
+ runRenameHandler = false;
}
void AniOni::handleUdpClientError()
#else
QSettings s(QSettings::IniFormat, QSettings::SystemScope, "anioni", "anioni");
#endif
- LocalMyList::instance()->loadLocalSettings(s);
+ loadSettings(s);
if (!LocalMyList::instance()->database()->connect())
{
- logMessage(QString("Failed to connect to database: %1").arg(LocalMyList::instance()->database()->connection().lastError().text()), QtServiceBase::Error);
+ log(QString("Failed to connect to database: %1").arg(LocalMyList::instance()->database()->connection().lastError().text()), QtServiceBase::Error);
application()->exit(1);
+ return;
}
else
{
qDebug() << "Connected!";
}
- LocalMyList::instance()->setupUdpClient();
- AniDBUdpClient::Client::instance()->setIdlePolicy(AniDBUdpClient::KeepAliveIdlePolicy);
- connect(AniDBUdpClient::Client::instance(), SIGNAL(connectionError()), this, SLOT(handleUdpClientError()));
+ if (!LocalMyList::instance()->hostId())
+ {
+ log(QString("Hostname not in Database. Check settings"), QtServiceBase::Error);
+ application()->exit(1);
+ return;
+ }
+
+ if (runUdpClient)
+ {
+ LocalMyList::instance()->setupUdpClient();
+ AniDBUdpClient::Client::instance()->setIdlePolicy(AniDBUdpClient::KeepAliveIdlePolicy);
+ connect(AniDBUdpClient::Client::instance(), SIGNAL(connectionError()), this, SLOT(handleUdpClientError()));
+
+ LocalMyList::instance()->setupRequestHandler();
+ }
+
+ if (runRenameHandler)
+ {
+ LocalMyList::instance()->setupRenameHandler();
+ }
+
+ if (!(runUdpClient || runRenameHandler))
+ {
+ log(QString("AniOni was configured to do nothing. Check settings"), QtServiceBase::Error);
+ application()->exit(1);
+ return;
+ }
+}
- LocalMyList::instance()->setupRequestHandler();
+void AniOni::loadSettings(QSettings &s)
+{
+ LocalMyList::instance()->loadLocalSettings(s);
+
+ s.beginGroup("anioni");
+ runUdpClient = s.value("runUdpClient", false).toBool();
+ runRenameHandler = s.value("runRenameHandler", false).toBool();
+ s.endGroup();
+}
+
+void AniOni::log(const QString &message, QtServiceBase::MessageType type)
+{
+ logMessage(message, type);
+ qWarning(message.toLocal8Bit());
}