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;