From 0bbfadefcc3842341515b45743384664027b6c5c Mon Sep 17 00:00:00 2001 From: acetone Date: Sat, 19 Nov 2022 22:08:10 +0300 Subject: [PATCH] hot fixes 1 --- src/httpdocument.cpp | 1 + src/main.cpp | 2 +- src/proxyinstanse.cpp | 8 ++++++-- src/statistics.cpp | 12 +++++++----- src/webpage.cpp | 38 ++++++++++++++++++++++++++++++++++---- src/webpage.h | 6 ++++-- 6 files changed, 53 insertions(+), 14 deletions(-) diff --git a/src/httpdocument.cpp b/src/httpdocument.cpp index 6def323..31aefd6 100644 --- a/src/httpdocument.cpp +++ b/src/httpdocument.cpp @@ -23,6 +23,7 @@ along with this program. If not, see . #include #include #include +#include const QString HttpDocument::Code::_200 = "200 OK"; const QString HttpDocument::Code::_303 = "303 See Other"; diff --git a/src/main.cpp b/src/main.cpp index a5c9a57..0e35f50 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -190,7 +190,7 @@ int main(int argc, char *argv[]) g::instanses.push_back( {thread, pi} ); } - qInfo().noquote() << "Instanses count:" << instanses.size(); + qInfo().noquote() << "Instanses count:" << g::instanses.size(); qInfo().noquote() << "Working directory:" << g::p::WORKING_DIR; qInfo().noquote() << "Ignored destinations:" << g::p::IGNORED_DESTINATIONS; diff --git a/src/proxyinstanse.cpp b/src/proxyinstanse.cpp index 2a27dac..7b478d5 100644 --- a/src/proxyinstanse.cpp +++ b/src/proxyinstanse.cpp @@ -86,7 +86,7 @@ void ProxyInstanse::generateBlackList(const QStringList &domainsOrAddresses) static QRegularExpression rgx_hiddenNetworks("^.*\\.(i2p|onion|loki)$"); if (name.contains(rgx_hiddenNetworks)) { - qDebug() << name << "is hidden network name, no attempt to resolve"; + qDebug() << "Domain" << name << "is hidden network name, no attempt to resolve"; continue; } @@ -123,11 +123,15 @@ void ProxyInstanse::start() m_process->setProgram(binPath()); m_process->setArguments(QStringList() << workingConfigPath()); - connect (m_process, &QProcess::readyReadStandardOutput, this, &ProxyInstanse::reader); + connect (m_process, &QProcess::readyReadStandardOutput, this, &ProxyInstanse::reader, Qt::DirectConnection); connect (m_process, QOverload::of(&QProcess::finished), this, &ProxyInstanse::restart); + qDebug() << "Proxy instanse starting"; m_process->start(); + connect (m_process, &QProcess::started, [](){ + qDebug() << "Proxy instanse started"; + }); } void ProxyInstanse::reader() diff --git a/src/statistics.cpp b/src/statistics.cpp index a54c315..4ef1b46 100644 --- a/src/statistics.cpp +++ b/src/statistics.cpp @@ -50,11 +50,13 @@ void Statistics::report(const LogEvent& event) return; } - DBManager db; - m_dailyDownload = db.incrementDailyDownloadTraffic(event.from); - m_dailyUpload = db.incrementDailyUploadTraffic(event.to); - m_totalDownload = db.incrementTotalDownloadTraffic(event.from); - m_totalUpload = db.incrementTotalUploadTraffic(event.to); + { + DBManager db; + m_dailyDownload = db.incrementDailyDownloadTraffic(event.from); + m_dailyUpload = db.incrementDailyUploadTraffic(event.to); + m_totalDownload = db.incrementTotalDownloadTraffic(event.from); + m_totalUpload = db.incrementTotalUploadTraffic(event.to); + } addToDestinationsList(event.dest); diff --git a/src/webpage.cpp b/src/webpage.cpp index 102e483..f2c0161 100644 --- a/src/webpage.cpp +++ b/src/webpage.cpp @@ -27,14 +27,21 @@ along with this program. If not, see . #include #include -const QString WebPage::m_lastDestinationItem = "\ +const QString WebPage::m_lastDestinationItemAllowed = "\
  • \n\ {{VALUE}}\n\
  • \n"; + +const QString WebPage::m_lastDestinationItemBlocked ="\ +
  • \n\ + {{VALUE}}\n\ +
  • \n"; + const QString WebPage::m_dailyTopDestinationItem = "\
  • \n\ {{VALUE}}\n\
  • \n"; + const QString WebPage::m_totalTopDestinationItem = "\
  • \n\ {{VALUE}}\n\ @@ -115,9 +122,25 @@ void WebPage::lastDestinations(QString &document) { QStringList dests = Statistics::lastDestinations(); QString destinationsBlock; + static QStringList allBlockedDestinations; for (const auto& dest: dests) { - destinationsBlock += lastDestinationItem(dest); + bool blocked = false; + for (const auto& inst: g::instanses) + { + QMapIterator mIter(inst.second->blackList()); + while (mIter.hasNext()) + { + mIter.next(); + if (mIter.key() == dest or mIter.value().contains(dest)) + { + blocked = true; + break; + } + } + } + + destinationsBlock += blocked ? lastDestinationItemBlocked(dest) : lastDestinationItemAllowed(dest); } document.replace(g::c::HA_LAST_DESTINATIONS_LIST, destinationsBlock); } @@ -224,9 +247,16 @@ void WebPage::copyright(QString &document) document.replace(g::c::HA_COPYRIGHT, g::c::COPYRIGHT); } -QString WebPage::lastDestinationItem(const QString &destination) +QString WebPage::lastDestinationItemAllowed(const QString &destination) { - QString result {m_lastDestinationItem}; + QString result {m_lastDestinationItemAllowed}; + result.replace("{{VALUE}}", destination); + return result; +} + +QString WebPage::lastDestinationItemBlocked(const QString &destination) +{ + QString result {m_lastDestinationItemBlocked}; result.replace("{{VALUE}}", destination); return result; } diff --git a/src/webpage.h b/src/webpage.h index af6ecfb..d6e1fc9 100644 --- a/src/webpage.h +++ b/src/webpage.h @@ -38,13 +38,15 @@ private: static void informationBlock(QString& document); static void copyright(QString& document); - static QString lastDestinationItem(const QString& destination); + static QString lastDestinationItemAllowed(const QString& destination); + static QString lastDestinationItemBlocked(const QString& destination); static QString dailyTopDestinationItem(const QString& destination, quint64 count); static QString totalTopDestinationItem(const QString& destination, quint64 count); static QString blockedDestinationItem(const QString& destination, const QStringList& addresses); static QPair bytesToHumanReadableString(quint64 bytes); // count, measure - static const QString m_lastDestinationItem; + static const QString m_lastDestinationItemAllowed; + static const QString m_lastDestinationItemBlocked; static const QString m_dailyTopDestinationItem; static const QString m_totalTopDestinationItem; static const QString m_blockedDestinationsBlock;