|
|
@ -21,6 +21,7 @@ import pylru |
|
|
|
|
|
|
|
from lib.jsonrpc import JSONRPC, JSONSessionBase, RPCError |
|
|
|
from lib.hash import double_sha256, hash_to_str, hex_str_to_hash |
|
|
|
from lib.peer import Peer |
|
|
|
import lib.util as util |
|
|
|
from server.block_processor import BlockProcessor |
|
|
|
from server.daemon import Daemon, DaemonError |
|
|
@ -73,7 +74,7 @@ class Controller(util.LoggedClass): |
|
|
|
env.max_send = max(350000, env.max_send) |
|
|
|
self.setup_bands() |
|
|
|
# Set up the RPC request handlers |
|
|
|
cmds = ('daemon_url disconnect getinfo groups log peers reorg ' |
|
|
|
cmds = ('add_peer daemon_url disconnect getinfo groups log peers reorg ' |
|
|
|
'sessions stop'.split()) |
|
|
|
self.rpc_handlers = {cmd: getattr(self, 'rpc_' + cmd) for cmd in cmds} |
|
|
|
# Set up the ElectrumX request handlers |
|
|
@ -579,6 +580,15 @@ class Controller(util.LoggedClass): |
|
|
|
|
|
|
|
# Local RPC command handlers |
|
|
|
|
|
|
|
def rpc_add_peer(self, real_name): |
|
|
|
'''Add a peer. |
|
|
|
|
|
|
|
real_name: a real name, as would appear on IRC |
|
|
|
''' |
|
|
|
peer = Peer.from_real_name(real_name, 'RPC') |
|
|
|
self.peer_mgr.add_peers([peer]) |
|
|
|
return "peer '{}' added".format(real_name) |
|
|
|
|
|
|
|
def rpc_disconnect(self, session_ids): |
|
|
|
'''Disconnect sesssions. |
|
|
|
|
|
|
|