mirror of
https://github.com/tnodir/fort
synced 2024-11-15 07:45:22 +00:00
UI: StatManager: Fix processes tracking when "Collect Traffic Statistics" is turned off
This commit is contained in:
parent
3f5a15db49
commit
27c7935ed4
@ -99,7 +99,7 @@ void StatManager::setupTrafDate()
|
|||||||
|
|
||||||
void StatManager::setupByConf()
|
void StatManager::setupByConf()
|
||||||
{
|
{
|
||||||
if (!conf() || !conf()->logStat()) {
|
if (!conf()) {
|
||||||
logClear();
|
logClear();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -114,6 +114,7 @@ void StatManager::setupActivePeriod()
|
|||||||
{
|
{
|
||||||
DateUtil::parseTime(
|
DateUtil::parseTime(
|
||||||
conf()->activePeriodFrom(), m_activePeriodFromHour, m_activePeriodFromMinute);
|
conf()->activePeriodFrom(), m_activePeriodFromHour, m_activePeriodFromMinute);
|
||||||
|
|
||||||
DateUtil::parseTime(conf()->activePeriodTo(), m_activePeriodToHour, m_activePeriodToMinute);
|
DateUtil::parseTime(conf()->activePeriodTo(), m_activePeriodToHour, m_activePeriodToMinute);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -241,8 +242,7 @@ bool StatManager::logProcNew(const LogEntryProcNew &entry, qint64 unixTime)
|
|||||||
|
|
||||||
bool StatManager::logStatTraf(const LogEntryStatTraf &entry, qint64 unixTime)
|
bool StatManager::logStatTraf(const LogEntryStatTraf &entry, qint64 unixTime)
|
||||||
{
|
{
|
||||||
if (!conf() || !conf()->logStat())
|
const bool logStat = conf() && conf()->logStat();
|
||||||
return false;
|
|
||||||
|
|
||||||
// Active period
|
// Active period
|
||||||
updateActivePeriod();
|
updateActivePeriod();
|
||||||
@ -281,12 +281,21 @@ bool StatManager::logStatTraf(const LogEntryStatTraf &entry, qint64 unixTime)
|
|||||||
const quint32 inBytes = *procTrafBytes++;
|
const quint32 inBytes = *procTrafBytes++;
|
||||||
const quint32 outBytes = *procTrafBytes++;
|
const quint32 outBytes = *procTrafBytes++;
|
||||||
|
|
||||||
logTrafBytes(insertTrafAppStmts, updateTrafAppStmts, sumInBytes, sumOutBytes, pidFlag,
|
const bool inactive = (pidFlag & 1) != 0;
|
||||||
|
const quint32 pid = pidFlag & ~quint32(1);
|
||||||
|
|
||||||
|
if (logStat) {
|
||||||
|
logTrafBytes(insertTrafAppStmts, updateTrafAppStmts, sumInBytes, sumOutBytes, pid,
|
||||||
inBytes, outBytes, unixTime);
|
inBytes, outBytes, unixTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (inactive) {
|
||||||
|
logClearApp(pid);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_isActivePeriod) {
|
if (m_isActivePeriod && logStat) {
|
||||||
const SqliteStmtList insertTrafStmts = SqliteStmtList()
|
const SqliteStmtList insertTrafStmts = SqliteStmtList()
|
||||||
<< getTrafficStmt(StatSql::sqlInsertTrafHour, m_trafHour)
|
<< getTrafficStmt(StatSql::sqlInsertTrafHour, m_trafHour)
|
||||||
<< getTrafficStmt(StatSql::sqlInsertTrafDay, m_trafDay)
|
<< getTrafficStmt(StatSql::sqlInsertTrafDay, m_trafDay)
|
||||||
@ -465,23 +474,16 @@ void StatManager::getStatAppList(QStringList &list, QVector<qint64> &appIds)
|
|||||||
|
|
||||||
void StatManager::logTrafBytes(const SqliteStmtList &insertStmtList,
|
void StatManager::logTrafBytes(const SqliteStmtList &insertStmtList,
|
||||||
const SqliteStmtList &updateStmtList, quint32 &sumInBytes, quint32 &sumOutBytes,
|
const SqliteStmtList &updateStmtList, quint32 &sumInBytes, quint32 &sumOutBytes,
|
||||||
quint32 pidFlag, quint32 inBytes, quint32 outBytes, qint64 unixTime)
|
quint32 pid, quint32 inBytes, quint32 outBytes, qint64 unixTime)
|
||||||
{
|
{
|
||||||
const bool inactive = (pidFlag & 1) != 0;
|
|
||||||
const quint32 pid = pidFlag & ~quint32(1);
|
|
||||||
|
|
||||||
const QString appPath = m_appPidPathMap.value(pid);
|
const QString appPath = m_appPidPathMap.value(pid);
|
||||||
|
|
||||||
if (Q_UNLIKELY(appPath.isEmpty())) {
|
if (Q_UNLIKELY(appPath.isEmpty())) {
|
||||||
qCCritical(LC) << "UI & Driver's states mismatch! Expected processes:"
|
qCCritical(LC) << "UI & Driver's states mismatch! Expected processes:"
|
||||||
<< m_appPidPathMap.keys() << "Got:" << pid << inactive;
|
<< m_appPidPathMap.keys() << "Got:" << pid;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (inactive) {
|
|
||||||
logClearApp(pid);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (inBytes == 0 && outBytes == 0)
|
if (inBytes == 0 && outBytes == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -91,7 +91,7 @@ private:
|
|||||||
void deleteOldTraffic(qint32 trafHour);
|
void deleteOldTraffic(qint32 trafHour);
|
||||||
|
|
||||||
void logTrafBytes(const SqliteStmtList &insertStmtList, const SqliteStmtList &updateStmtList,
|
void logTrafBytes(const SqliteStmtList &insertStmtList, const SqliteStmtList &updateStmtList,
|
||||||
quint32 &sumInBytes, quint32 &sumOutBytes, quint32 pidFlag, quint32 inBytes,
|
quint32 &sumInBytes, quint32 &sumOutBytes, quint32 pid, quint32 inBytes,
|
||||||
quint32 outBytes, qint64 unixTime);
|
quint32 outBytes, qint64 unixTime);
|
||||||
|
|
||||||
void updateTrafficList(const SqliteStmtList &insertStmtList,
|
void updateTrafficList(const SqliteStmtList &insertStmtList,
|
||||||
|
Loading…
Reference in New Issue
Block a user