aboutsummaryrefslogtreecommitdiff
path: root/rtr-origin
diff options
context:
space:
mode:
authorRob Austein <sra@hactrn.net>2013-06-12 20:13:26 +0000
committerRob Austein <sra@hactrn.net>2013-06-12 20:13:26 +0000
commit68ab5bc3c0b93dbb7af24af8353b2859459dad61 (patch)
tree20863bbf144113a7977bfe72d69df7713e20f895 /rtr-origin
parent72075c4103ced3973eed75b74d012bc4046d8cde (diff)
Cleanup client connect code.
svn path=/trunk/; revision=5398
Diffstat (limited to 'rtr-origin')
-rwxr-xr-xrtr-origin/rtr-origin.py34
1 files changed, 21 insertions, 13 deletions
diff --git a/rtr-origin/rtr-origin.py b/rtr-origin/rtr-origin.py
index a1013528..20fa452e 100755
--- a/rtr-origin/rtr-origin.py
+++ b/rtr-origin/rtr-origin.py
@@ -1238,19 +1238,27 @@ class client_channel(pdu_channel):
Set up TCP connection and start listening for first PDU.
"""
blather("[Starting raw TCP connection to %s:%s]" % (host, port))
- for ai in socket.getaddrinfo(host, port, socket.AF_UNSPEC, socket.SOCK_STREAM):
- af, socktype, proto, cn, sa = ai
- try:
- s = socket.socket(af, socktype, proto)
- except:
- continue
- try:
- s.connect(sa)
- except:
- s.close()
- continue
- return cls(sock = s, proc = None, killsig = None)
- sys.exit("Couldn't connect to host %s port %s" % (host, port))
+ try:
+ addrinfo = socket.getaddrinfo(host, port, socket.AF_UNSPEC, socket.SOCK_STREAM)
+ except socket.error, e:
+ blather("[socket.getaddrinfo() failed: %s]" % e)
+ else:
+ for ai in addrinfo:
+ af, socktype, proto, cn, sa = ai
+ blather("[Trying addr %s port %s]" % sa[:2])
+ try:
+ s = socket.socket(af, socktype, proto)
+ except socket.error, e:
+ blather("[socket.socket() failed: %s]" % e)
+ continue
+ try:
+ s.connect(sa)
+ except socket.error, e:
+ blather("[socket.connect() failed: %s]" % e)
+ s.close()
+ continue
+ return cls(sock = s, proc = None, killsig = None)
+ sys.exit(1)
@classmethod
def loopback(cls):