aboutsummaryrefslogtreecommitdiff
path: root/utils/python-rpc/console.py
diff options
context:
space:
mode:
Diffstat (limited to '')
-rwxr-xr-xutils/python-rpc/console.py28
1 files changed, 23 insertions, 5 deletions
diff --git a/utils/python-rpc/console.py b/utils/python-rpc/console.py
index ab0d9f27f..444a9cc59 100755
--- a/utils/python-rpc/console.py
+++ b/utils/python-rpc/console.py
@@ -4,27 +4,45 @@ from __future__ import print_function
import sys
import subprocess
import socket
+import urlparse
from framework import rpc
from framework import wallet
from framework import daemon
-USAGE = 'usage: python -i console.py <port>'
+scheme='http'
+host='127.0.0.1'
+port=None
+
+USAGE = 'usage: python -i console.py [[scheme]<host>:]<port>'
try:
- port = int(sys.argv[1])
-except:
+ try:
+ port = int(sys.argv[1])
+ except:
+ t = urlparse.urlparse(sys.argv[1], allow_fragments = False)
+ scheme = t.scheme or scheme
+ host = t.hostname or host
+ port = t.port or port
+ if scheme != 'http' and scheme != 'https':
+ print(USAGE)
+ sys.exit(1)
+ if port <= 0 or port > 65535:
+ print(USAGE)
+ sys.exit(1)
+except Exception, e:
+ print('Error: ' + str(e))
print(USAGE)
sys.exit(1)
# check for open port
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(1)
-if s.connect_ex(('127.0.0.1', port)) != 0:
+if s.connect_ex((host, port)) != 0:
print('No wallet or daemon RPC on port ' + str(port))
sys.exit(1)
s.close()
# both wallet and daemon have a get_version JSON RPC
-rpc = rpc.JSONRPC('{protocol}://{host}:{port}'.format(protocol='http', host='127.0.0.1', port=port))
+rpc = rpc.JSONRPC('{protocol}://{host}:{port}'.format(protocol=scheme, host=host, port=port))
get_version = {
'method': 'get_version',
'jsonrpc': '2.0',