[tor-commits] [flashproxy/master] Factor out a format_peername function.

dcf at torproject.org dcf at torproject.org
Tue Jul 12 15:55:13 UTC 2011


commit 2916c922e235841d01b4e3d368fdc80f079f973a
Author: David Fifield <david at bamsoftware.com>
Date:   Tue Jul 12 08:47:23 2011 -0700

    Factor out a format_peername function.
    
    This affords a little brevity and catches the exception in case the
    socket is not connected.
---
 connector.py |   22 ++++++++++++++--------
 1 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/connector.py b/connector.py
index f85aeca..5434f84 100755
--- a/connector.py
+++ b/connector.py
@@ -168,6 +168,12 @@ def listen_socket(addr):
     s.setblocking(0)
     return s
 
+def format_peername(s):
+    try:
+        return format_addr(s.getpeername())
+    except socket.error, e:
+        return "<unconnected>"
+
 # How long to wait for a crossdomain policy request before deciding that this is
 # a normal socket.
 CROSSDOMAIN_TIMEOUT = 2.0
@@ -281,8 +287,8 @@ def handle_local_connection(fd):
     match_proxies()
 
 def report_pending():
-    log(u"locals  (%d): %s" % (len(locals), [format_addr(x.getpeername()) for x in locals]))
-    log(u"remotes (%d): %s" % (len(remotes), [format_addr(x.getpeername()) for x in remotes]))
+    log(u"locals  (%d): %s" % (len(locals), [format_peername(x) for x in locals]))
+    log(u"remotes (%d): %s" % (len(remotes), [format_peername(x) for x in remotes]))
 
 def register():
     if options.facilitator_addr is None:
@@ -302,7 +308,7 @@ def proxy_chunk(fd_r, fd_w, label):
         fd_w.close()
         return False
     if not data:
-        log(u"EOF from %s %s." % (label, format_addr(fd_r.getpeername())))
+        log(u"EOF from %s %s." % (label, format_peername(fd_r)))
         fd_r.close()
         fd_w.close()
         return False
@@ -322,14 +328,14 @@ def receive_unconnected(fd, label):
         fd.close()
         return False
     if not data:
-        log(u"EOF from unconnected %s %s with %d bytes buffered." % (label, format_addr(fd.getpeername()), len(fd.buf)))
+        log(u"EOF from unconnected %s %s with %d bytes buffered." % (label, format_peername(fd), len(fd.buf)))
         fd.close()
         return False
     else:
-        log(u"Data from unconnected %s %s (%d bytes)." % (label, format_addr(fd.getpeername()), len(data)))
+        log(u"Data from unconnected %s %s (%d bytes)." % (label, format_peername(fd), len(data)))
         fd.buf += data
         if len(fd.buf) >= UNCONNECTED_BUFFER_LIMIT:
-            log(u"Refusing to buffer more than %d bytes from %s %s." % (UNCONNECTED_BUFFER_LIMIT, label, format_addr(fd.getpeername())))
+            log(u"Refusing to buffer more than %d bytes from %s %s." % (UNCONNECTED_BUFFER_LIMIT, label, format_peername(fd)))
             fd.close()
             return False
         return True
@@ -340,7 +346,7 @@ def match_proxies():
         local = locals.pop(0)
         remote_addr, remote_port = remote.getpeername()
         local_addr, local_port = local.getpeername()
-        log(u"Linking %s and %s." % (format_addr(local.getpeername()), format_addr(remote.getpeername())))
+        log(u"Linking %s and %s." % (format_peername(local), format_peername(remote)))
         if local.buf:
             remote.sendall(local.buf)
         if remote.buf:
@@ -412,7 +418,7 @@ def main():
             pending = crossdomain_pending[0]
             if not pending.is_expired(CROSSDOMAIN_TIMEOUT):
                 break
-            log(u"Expired pending crossdomain from %s." % format_addr(pending.getpeername()))
+            log(u"Expired pending crossdomain from %s." % format_peername(pending))
             crossdomain_pending.pop(0)
             remotes.append(pending)
             handle_remote_connection(pending)



More information about the tor-commits mailing list