Fix WebUI error handling

This commit is contained in:
Vladimir Golovnev (Glassez) 2017-11-05 15:56:13 +03:00 committed by sledgehammer999
parent ffa6f7ea34
commit 71bb6538db
No known key found for this signature in database
GPG key ID: 6E4A2D025B7CC9A2
4 changed files with 71 additions and 46 deletions

View file

@ -28,10 +28,6 @@
#include "webui.h"
#ifdef DISABLE_GUI
#include <QCoreApplication>
#endif
#include "base/http/server.h"
#include "base/logger.h"
#include "base/net/dnsupdater.h"
@ -39,18 +35,20 @@
#include "base/preferences.h"
#include "webapplication.h"
WebUI::WebUI(QObject *parent)
: QObject(parent)
WebUI::WebUI()
: m_isErrored(false)
, m_port(0)
{
init();
connect(Preferences::instance(), SIGNAL(changed()), SLOT(init()));
configure();
connect(Preferences::instance(), &Preferences::changed, this, &WebUI::configure);
}
void WebUI::init()
void WebUI::configure()
{
Logger* const logger = Logger::instance();
Preferences* const pref = Preferences::instance();
m_isErrored = false; // clear previous error state
Logger *const logger = Logger::instance();
Preferences *const pref = Preferences::instance();
const quint16 oldPort = m_port;
m_port = pref->getWebUiPort();
@ -105,10 +103,10 @@ void WebUI::init()
const QString errorMsg = tr("Web UI: Unable to bind to IP: %1, port: %2. Reason: %3")
.arg(serverAddressString).arg(m_port).arg(m_httpServer->errorString());
logger->addMessage(errorMsg, Log::CRITICAL);
#ifdef DISABLE_GUI
qCritical() << errorMsg;
QCoreApplication::exit(1);
#endif
m_isErrored = true;
emit fatalError();
}
}
@ -137,3 +135,8 @@ void WebUI::init()
delete m_dnsUpdater;
}
}
bool WebUI::isErrored() const
{
return m_isErrored;
}