Browse Source

[Qt] adapt QT ban option to banlist.dat changes

0.13
Jonas Schnelli 10 years ago
parent
commit
b1189cfa10
  1. 10
      src/qt/bantablemodel.cpp
  2. 2
      src/qt/bantablemodel.h
  3. 2
      src/qt/forms/rpcconsole.ui
  4. 10
      src/qt/rpcconsole.cpp

10
src/qt/bantablemodel.cpp

@ -27,7 +27,7 @@ bool BannedNodeLessThan::operator()(const CCombinedBan& left, const CCombinedBan
case BanTableModel::Address: case BanTableModel::Address:
return pLeft->subnet.ToString().compare(pRight->subnet.ToString()) < 0; return pLeft->subnet.ToString().compare(pRight->subnet.ToString()) < 0;
case BanTableModel::Bantime: case BanTableModel::Bantime:
return pLeft->bantil < pRight->bantil; return pLeft->banEntry.nBanUntil < pRight->banEntry.nBanUntil;
} }
return false; return false;
@ -47,18 +47,18 @@ public:
/** Pull a full list of banned nodes from CNode into our cache */ /** Pull a full list of banned nodes from CNode into our cache */
void refreshBanlist() void refreshBanlist()
{ {
std::map<CSubNet, int64_t> banMap; banmap_t banMap;
CNode::GetBanned(banMap); CNode::GetBanned(banMap);
cachedBanlist.clear(); cachedBanlist.clear();
#if QT_VERSION >= 0x040700 #if QT_VERSION >= 0x040700
cachedBanlist.reserve(banMap.size()); cachedBanlist.reserve(banMap.size());
#endif #endif
foreach (const PAIRTYPE(CSubNet, int64_t)& banentry, banMap) foreach (const PAIRTYPE(CSubNet, CBanEntry)& banentry, banMap)
{ {
CCombinedBan banEntry; CCombinedBan banEntry;
banEntry.subnet = banentry.first; banEntry.subnet = banentry.first;
banEntry.bantil = banentry.second; banEntry.banEntry = banentry.second;
cachedBanlist.append(banEntry); cachedBanlist.append(banEntry);
} }
@ -120,7 +120,7 @@ QVariant BanTableModel::data(const QModelIndex &index, int role) const
return QString::fromStdString(rec->subnet.ToString()); return QString::fromStdString(rec->subnet.ToString());
case Bantime: case Bantime:
QDateTime date = QDateTime::fromMSecsSinceEpoch(0); QDateTime date = QDateTime::fromMSecsSinceEpoch(0);
date = date.addSecs(rec->bantil); date = date.addSecs(rec->banEntry.nBanUntil);
return date.toString(Qt::SystemLocaleLongDate); return date.toString(Qt::SystemLocaleLongDate);
} }
} }

2
src/qt/bantablemodel.h

@ -15,7 +15,7 @@ class BanTablePriv;
struct CCombinedBan { struct CCombinedBan {
CSubNet subnet; CSubNet subnet;
int64_t bantil; CBanEntry banEntry;
}; };
class BannedNodeLessThan class BannedNodeLessThan

2
src/qt/forms/rpcconsole.ui

@ -768,7 +768,7 @@
<bool>true</bool> <bool>true</bool>
</property> </property>
<property name="textInteractionFlags"> <property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set> <set>Qt::NoTextInteraction</set>
</property> </property>
</widget> </widget>
</item> </item>

10
src/qt/rpcconsole.cpp

@ -356,10 +356,10 @@ void RPCConsole::setClientModel(ClientModel *model)
// create peer table context menu actions // create peer table context menu actions
QAction* disconnectAction = new QAction(tr("&Disconnect Node"), this); QAction* disconnectAction = new QAction(tr("&Disconnect Node"), this);
QAction* banAction1h = new QAction(tr("&Ban Node for") + " " + tr("&1 hour"), this); QAction* banAction1h = new QAction(tr("Ban Node for") + " " + tr("1 hour"), this);
QAction* banAction24h = new QAction(tr("&Ban Node for") + " " + tr("&24 hours"), this); QAction* banAction24h = new QAction(tr("Ban Node for") + " " + tr("24 hours"), this);
QAction* banAction7d = new QAction(tr("&Ban Node for") + " " + tr("&7 days"), this); QAction* banAction7d = new QAction(tr("Ban Node for") + " " + tr("7 days"), this);
QAction* banAction365d = new QAction(tr("&Ban Node for") + " " + tr("&1 year"), this); QAction* banAction365d = new QAction(tr("Ban Node for") + " " + tr("1 year"), this);
// create peer table context menu // create peer table context menu
peersTableContextMenu = new QMenu(); peersTableContextMenu = new QMenu();
@ -806,7 +806,7 @@ void RPCConsole::banSelectedNode(int bantime)
int port = 0; int port = 0;
SplitHostPort(nStr, port, addr); SplitHostPort(nStr, port, addr);
CNode::Ban(CNetAddr(addr), bantime); CNode::Ban(CNetAddr(addr), BanReasonManuallyAdded, bantime);
bannedNode->fDisconnect = true; bannedNode->fDisconnect = true;
clearSelectedNode(); clearSelectedNode();

Loading…
Cancel
Save