mirror of
https://github.com/tnodir/fort
synced 2024-11-15 06:15:15 +00:00
UI: Connections: Show block reason in tool-tip.
This commit is contained in:
parent
47488c0a55
commit
dd415e57bf
@ -47,3 +47,21 @@ void LogEntryBlockedIp::setRemoteIp(quint32 ip)
|
||||
{
|
||||
m_remoteIp = ip;
|
||||
}
|
||||
|
||||
QString LogEntryBlockedIp::reasonToString(quint8 blockReason)
|
||||
{
|
||||
switch (blockReason) {
|
||||
case ReasonIpInet:
|
||||
return QObject::tr("Not allowed Internet address");
|
||||
case ReasonReauth:
|
||||
return QObject::tr("Old connection closed on startup");
|
||||
case ReasonProgram:
|
||||
return QObject::tr("Programs logic");
|
||||
case ReasonAppGroupFound:
|
||||
return QObject::tr("App. Group logic");
|
||||
case ReasonAppGroupDefault:
|
||||
return QObject::tr("App. Group default logic");
|
||||
default:
|
||||
return QObject::tr("Unknown");
|
||||
}
|
||||
}
|
||||
|
@ -44,6 +44,8 @@ public:
|
||||
quint32 remoteIp() const { return m_remoteIp; }
|
||||
void setRemoteIp(quint32 ip);
|
||||
|
||||
static QString reasonToString(quint8 blockReason);
|
||||
|
||||
private:
|
||||
bool m_inbound = false;
|
||||
quint8 m_blockReason = 0;
|
||||
|
@ -79,7 +79,7 @@ int AppListModel::columnCount(const QModelIndex &parent) const
|
||||
|
||||
QVariant AppListModel::headerData(int section, Qt::Orientation orientation, int role) const
|
||||
{
|
||||
if (orientation == Qt::Horizontal && role == Qt::DisplayRole) {
|
||||
if (orientation == Qt::Horizontal && (role == Qt::DisplayRole || role == Qt::ToolTipRole)) {
|
||||
switch (section) {
|
||||
case 0:
|
||||
return tr("Program");
|
||||
@ -88,7 +88,7 @@ QVariant AppListModel::headerData(int section, Qt::Orientation orientation, int
|
||||
case 2:
|
||||
return tr("State");
|
||||
case 3:
|
||||
return tr("Bl.");
|
||||
return (role == Qt::DisplayRole) ? tr("Bl.") : tr("Block scheduled");
|
||||
case 4:
|
||||
return tr("Creation Time");
|
||||
}
|
||||
|
@ -46,7 +46,7 @@ int ConnListModel::columnCount(const QModelIndex &parent) const
|
||||
|
||||
QVariant ConnListModel::headerData(int section, Qt::Orientation orientation, int role) const
|
||||
{
|
||||
if (orientation == Qt::Horizontal && role == Qt::DisplayRole) {
|
||||
if (orientation == Qt::Horizontal && (role == Qt::DisplayRole || role == Qt::ToolTipRole)) {
|
||||
switch (section) {
|
||||
case 0:
|
||||
return tr("Program");
|
||||
@ -59,7 +59,7 @@ QVariant ConnListModel::headerData(int section, Qt::Orientation orientation, int
|
||||
case 4:
|
||||
return tr("Remote IP and Port");
|
||||
case 5:
|
||||
return tr("Dir.");
|
||||
return (role == Qt::DisplayRole) ? tr("Dir.") : tr("Direction");
|
||||
case 6:
|
||||
return tr("Time");
|
||||
}
|
||||
@ -97,8 +97,16 @@ QVariant ConnListModel::data(const QModelIndex &index, int role) const
|
||||
return NetUtil::ip4ToText(connRow.localIp) + ':' + QString::number(connRow.localPort);
|
||||
case 4:
|
||||
return NetUtil::ip4ToText(connRow.remoteIp) + ':' + QString::number(connRow.remotePort);
|
||||
case 5:
|
||||
case 5: {
|
||||
if (role == Qt::ToolTipRole) {
|
||||
if (connRow.blocked) {
|
||||
// Show block reason in tool-tip
|
||||
const auto connBlock = getConnRowBlock(connRow.connId);
|
||||
return LogEntryBlockedIp::reasonToString(connBlock.blockReason);
|
||||
}
|
||||
}
|
||||
return connRow.inbound ? tr("In") : tr("Out");
|
||||
}
|
||||
case 6:
|
||||
return connRow.connTime;
|
||||
}
|
||||
@ -149,6 +157,14 @@ const ConnRow &ConnListModel::connRowAt(int row) const
|
||||
return m_connRow;
|
||||
}
|
||||
|
||||
ConnRowBlock ConnListModel::getConnRowBlock(qint64 connId) const
|
||||
{
|
||||
static const char *const sql = "SELECT block_reason FROM conn_block"
|
||||
" WHERE conn_id = ?1";
|
||||
|
||||
return { quint8(sqliteDb()->executeEx(sql, { connId }).toInt()) };
|
||||
}
|
||||
|
||||
void ConnListModel::clear()
|
||||
{
|
||||
statManager()->deleteConns();
|
||||
|
@ -30,6 +30,11 @@ struct ConnRow : TableRow
|
||||
QDateTime connTime;
|
||||
};
|
||||
|
||||
struct ConnRowBlock
|
||||
{
|
||||
quint8 blockReason = 0;
|
||||
};
|
||||
|
||||
class ConnListModel : public TableSqlModel
|
||||
{
|
||||
Q_OBJECT
|
||||
@ -55,6 +60,8 @@ public:
|
||||
|
||||
const ConnRow &connRowAt(int row) const;
|
||||
|
||||
ConnRowBlock getConnRowBlock(qint64 connId) const;
|
||||
|
||||
public slots:
|
||||
void clear();
|
||||
|
||||
|
@ -41,7 +41,7 @@ int TrafListModel::columnCount(const QModelIndex &parent) const
|
||||
|
||||
QVariant TrafListModel::headerData(int section, Qt::Orientation orientation, int role) const
|
||||
{
|
||||
if (orientation == Qt::Horizontal && role == Qt::DisplayRole) {
|
||||
if (orientation == Qt::Horizontal && (role == Qt::DisplayRole || role == Qt::ToolTipRole)) {
|
||||
switch (section) {
|
||||
case 0:
|
||||
return tr("Date");
|
||||
|
@ -36,7 +36,7 @@ int ZoneListModel::columnCount(const QModelIndex &parent) const
|
||||
|
||||
QVariant ZoneListModel::headerData(int section, Qt::Orientation orientation, int role) const
|
||||
{
|
||||
if (orientation == Qt::Horizontal && role == Qt::DisplayRole) {
|
||||
if (orientation == Qt::Horizontal && (role == Qt::DisplayRole || role == Qt::ToolTipRole)) {
|
||||
switch (section) {
|
||||
case 0:
|
||||
return tr("Zone");
|
||||
|
@ -36,7 +36,7 @@ int TaskListModel::columnCount(const QModelIndex &parent) const
|
||||
|
||||
QVariant TaskListModel::headerData(int section, Qt::Orientation orientation, int role) const
|
||||
{
|
||||
if (orientation == Qt::Horizontal && role == Qt::DisplayRole) {
|
||||
if (orientation == Qt::Horizontal && (role == Qt::DisplayRole || role == Qt::ToolTipRole)) {
|
||||
switch (section) {
|
||||
case 0:
|
||||
return tr("Name");
|
||||
|
Loading…
Reference in New Issue
Block a user