-
Notifications
You must be signed in to change notification settings - Fork 36.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
9d79afe add RPC tests for setban & disconnectnode (Jonas Schnelli) 1f02b80 setban: add RPCErrorCode (Jonas Schnelli) d624167 fix CSubNet comparison operator (Jonas Schnelli) 4e36e9b setban: rewrite to UniValue, allow absolute bantime (Jonas Schnelli) 3de24d7 rename json field "bannedtill" to "banned_until" (Jonas Schnelli) 433fb1a [RPC] extend setban to allow subnets (Jonas Schnelli) e8b9347 [net] remove unused return type bool from CNode::Ban() (Jonas Schnelli) 1086ffb [QA] add setban/listbanned/clearbanned tests (Jonas Schnelli) d930b26 [RPC] add setban/listbanned/clearbanned RPC commands (Jonas Schnelli) 2252fb9 [net] extend core functionallity for ban/unban/listban (Jonas Schnelli)
- Loading branch information
Showing
13 changed files
with
331 additions
and
28 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
#!/usr/bin/env python2 | ||
# Copyright (c) 2014 The Bitcoin Core developers | ||
# Distributed under the MIT software license, see the accompanying | ||
# file COPYING or http://www.opensource.org/licenses/mit-license.php. | ||
|
||
# | ||
# Test node handling | ||
# | ||
|
||
from test_framework.test_framework import BitcoinTestFramework | ||
from test_framework.util import * | ||
import base64 | ||
|
||
try: | ||
import http.client as httplib | ||
except ImportError: | ||
import httplib | ||
try: | ||
import urllib.parse as urlparse | ||
except ImportError: | ||
import urlparse | ||
|
||
class NodeHandlingTest (BitcoinTestFramework): | ||
def run_test(self): | ||
########################### | ||
# setban/listbanned tests # | ||
########################### | ||
assert_equal(len(self.nodes[2].getpeerinfo()), 4) #we should have 4 nodes at this point | ||
self.nodes[2].setban("127.0.0.1", "add") | ||
time.sleep(3) #wait till the nodes are disconected | ||
assert_equal(len(self.nodes[2].getpeerinfo()), 0) #all nodes must be disconnected at this point | ||
assert_equal(len(self.nodes[2].listbanned()), 1) | ||
self.nodes[2].clearbanned() | ||
assert_equal(len(self.nodes[2].listbanned()), 0) | ||
self.nodes[2].setban("127.0.0.0/24", "add") | ||
assert_equal(len(self.nodes[2].listbanned()), 1) | ||
try: | ||
self.nodes[2].setban("127.0.0.1", "add") #throws exception because 127.0.0.1 is within range 127.0.0.0/24 | ||
except: | ||
pass | ||
assert_equal(len(self.nodes[2].listbanned()), 1) #still only one banned ip because 127.0.0.1 is within the range of 127.0.0.0/24 | ||
try: | ||
self.nodes[2].setban("127.0.0.1", "remove") | ||
except: | ||
pass | ||
assert_equal(len(self.nodes[2].listbanned()), 1) | ||
self.nodes[2].setban("127.0.0.0/24", "remove") | ||
assert_equal(len(self.nodes[2].listbanned()), 0) | ||
self.nodes[2].clearbanned() | ||
assert_equal(len(self.nodes[2].listbanned()), 0) | ||
|
||
########################### | ||
# RPC disconnectnode test # | ||
########################### | ||
url = urlparse.urlparse(self.nodes[1].url) | ||
self.nodes[0].disconnectnode(url.hostname+":"+str(p2p_port(1))) | ||
time.sleep(2) #disconnecting a node needs a little bit of time | ||
for node in self.nodes[0].getpeerinfo(): | ||
assert(node['addr'] != url.hostname+":"+str(p2p_port(1))) | ||
|
||
connect_nodes_bi(self.nodes,0,1) #reconnect the node | ||
found = False | ||
for node in self.nodes[0].getpeerinfo(): | ||
if node['addr'] == url.hostname+":"+str(p2p_port(1)): | ||
found = True | ||
assert(found) | ||
|
||
if __name__ == '__main__': | ||
NodeHandlingTest ().main () |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.