diff --git a/scripts/rpc.py b/scripts/rpc.py index 2d010f1d2..fbbbdc330 100755 --- a/scripts/rpc.py +++ b/scripts/rpc.py @@ -932,5 +932,9 @@ if __name__ == "__main__": args = parser.parse_args() - args.client = rpc.client.JSONRPCClient(args.server_addr, args.port, args.verbose, args.timeout) + try: + args.client = rpc.client.JSONRPCClient(args.server_addr, args.port, args.verbose, args.timeout) + except JSONRPCException as ex: + print(ex.message) + exit(1) args.func(args) diff --git a/scripts/rpc/client.py b/scripts/rpc/client.py index f1e5482d3..e532c0fd8 100755 --- a/scripts/rpc/client.py +++ b/scripts/rpc/client.py @@ -16,17 +16,21 @@ class JSONRPCClient(object): def __init__(self, addr, port=None, verbose=False, timeout=60.0): self.verbose = verbose self.timeout = timeout - if addr.startswith('/'): - self.sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) - self.sock.connect(addr) - elif ':' in addr: - for res in socket.getaddrinfo(addr, port, socket.AF_INET6, socket.SOCK_STREAM, socket.SOL_TCP): - af, socktype, proto, canonname, sa = res - self.sock = socket.socket(af, socktype, proto) - self.sock.connect(sa) - else: - self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - self.sock.connect((addr, port)) + try: + if addr.startswith('/'): + self.sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) + self.sock.connect(addr) + elif ':' in addr: + for res in socket.getaddrinfo(addr, port, socket.AF_INET6, socket.SOCK_STREAM, socket.SOL_TCP): + af, socktype, proto, canonname, sa = res + self.sock = socket.socket(af, socktype, proto) + self.sock.connect(sa) + else: + self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + self.sock.connect((addr, port)) + except socket.error as ex: + raise JSONRPCException("Error while connecting to %s\n" + "Error details: %s" % (addr, ex)) def __del__(self): self.sock.close()