Make WebUI error non-fatal

* Do not exit the app when WebUI is failed for start.
* Print the error to stdout.

PR #19697.
Closes #19695.
Closes #19469.
This commit is contained in:
Hanabishi
2023-10-24 15:32:21 +05:00
committed by GitHub
parent 6860c0d60d
commit 35e4b35d12
3 changed files with 21 additions and 9 deletions

View File

@@ -48,6 +48,7 @@ WebUI::WebUI(IApplication *app)
void WebUI::configure()
{
m_isErrored = false; // clear previous error state
m_errorMsg.clear();
const QString portForwardingProfile = u"webui"_s;
const Preferences *pref = Preferences::instance();
@@ -113,13 +114,13 @@ void WebUI::configure()
}
else
{
const QString errorMsg = tr("Web UI: Unable to bind to IP: %1, port: %2. Reason: %3")
m_errorMsg = tr("Web UI: Unable to bind to IP: %1, port: %2. Reason: %3")
.arg(serverAddressString).arg(port).arg(m_httpServer->errorString());
LogMsg(errorMsg, Log::CRITICAL);
qCritical() << errorMsg;
LogMsg(m_errorMsg, Log::CRITICAL);
qCritical() << m_errorMsg;
m_isErrored = true;
emit fatalError();
emit error(m_errorMsg);
}
}
@@ -156,6 +157,11 @@ bool WebUI::isErrored() const
return m_isErrored;
}
QString WebUI::errorMessage() const
{
return m_errorMsg;
}
bool WebUI::isHttps() const
{
if (!m_httpServer) return false;

View File

@@ -56,12 +56,13 @@ public:
bool isEnabled() const;
bool isErrored() const;
QString errorMessage() const;
bool isHttps() const;
QHostAddress hostAddress() const;
quint16 port() const;
signals:
void fatalError();
void error(const QString &message);
private slots:
void configure();
@@ -69,6 +70,7 @@ private slots:
private:
bool m_isEnabled = false;
bool m_isErrored = false;
QString m_errorMsg;
QPointer<Http::Server> m_httpServer;
QPointer<Net::DNSUpdater> m_dnsUpdater;
QPointer<WebApplication> m_webapp;