From: APTX Date: Tue, 12 Jun 2012 20:52:08 +0000 (+0200) Subject: Make AniOni read its own settings. X-Git-Url: https://gitweb.aptx.org/?a=commitdiff_plain;h=35104969016b3b4909abdc4c1b47fde5ed5ec0f8;p=localmylist.git Make AniOni read its own settings. --- diff --git a/anioni/anioni.cpp b/anioni/anioni.cpp index c74c55b..5e0ac55 100644 --- a/anioni/anioni.cpp +++ b/anioni/anioni.cpp @@ -10,6 +10,8 @@ AniOni::AniOni(int argc, char **argv) : QObject(), QtService(argc, argv, "LocalMyList Daemon") { setServiceDescription("LocalMyList Daemon"); + runUdpClient = false; + runRenameHandler = false; } void AniOni::handleUdpClientError() @@ -59,21 +61,60 @@ void AniOni::start() #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()); } diff --git a/anioni/anioni.h b/anioni/anioni.h index d7bee5d..4978c22 100644 --- a/anioni/anioni.h +++ b/anioni/anioni.h @@ -2,6 +2,7 @@ #define ANIONI_H #include +#include class AniOni : public QObject, public QtService { @@ -18,6 +19,13 @@ protected slots: protected: void start(); + +private: + void loadSettings(QSettings &s); + void log(const QString &message, QtServiceBase::MessageType type); + + bool runUdpClient; + bool runRenameHandler; }; #endif // ANIONI_H diff --git a/anioni/config/anioni.ini b/anioni/config/anioni.ini index a230020..2e84f7f 100644 --- a/anioni/config/anioni.ini +++ b/anioni/config/anioni.ini @@ -10,3 +10,4 @@ database=localmylist [anioni] runUdpClient=false +runRenameHandler=false