[pypy-svn] r44264 - pypy/branch/graphserver-dist/dotviewer

arigo at codespeak.net arigo at codespeak.net
Fri Jun 15 10:18:21 CEST 2007


Author: arigo
Date: Fri Jun 15 10:18:21 2007
New Revision: 44264

Modified:
   pypy/branch/graphserver-dist/dotviewer/dotviewer.py
   pypy/branch/graphserver-dist/dotviewer/graphserver.py
Log:
Support for specifying an interface to listen on.  Useful to avoid opening
an externally-visible tcp port.


Modified: pypy/branch/graphserver-dist/dotviewer/dotviewer.py
==============================================================================
--- pypy/branch/graphserver-dist/dotviewer/dotviewer.py	(original)
+++ pypy/branch/graphserver-dist/dotviewer/dotviewer.py	Fri Jun 15 10:18:21 2007
@@ -4,7 +4,7 @@
 
     dotviewer.py filename.dot
     dotviewer.py filename.plain
-    dotviewer.py --server port
+    dotviewer.py --server [interface:]port
 
 In the first form, show the graph contained in a .dot file.
 In the second form, the graph was already compiled to a .plain file.
@@ -17,22 +17,22 @@
 def main(args = sys.argv[1:]):
     import getopt
     options, args = getopt.getopt(args, 's:h', ['server=', 'help'])
-    server_port = None
+    server_addr = None
     for option, value in options:
         if option in ('-h', '--help'):
             print >> sys.stderr, __doc__
             sys.exit(2)
         if option in ('-s', '--server'):
-            server_port = int(value)
-    if not args and server_port is None:
+            server_addr = value
+    if not args and server_addr is None:
         print >> sys.stderr, __doc__
         sys.exit(2)
     for filename in args:
         import graphclient
         graphclient.display_dot_file(filename)
-    if server_port is not None:
+    if server_addr is not None:
         import graphserver
-        graphserver.listen_server(('', server_port))
+        graphserver.listen_server(server_addr)
 
 if __name__ == '__main__':
     main()

Modified: pypy/branch/graphserver-dist/dotviewer/graphserver.py
==============================================================================
--- pypy/branch/graphserver-dist/dotviewer/graphserver.py	(original)
+++ pypy/branch/graphserver-dist/dotviewer/graphserver.py	Fri Jun 15 10:18:21 2007
@@ -111,6 +111,12 @@
 
 def listen_server(local_address):
     import socket, graphclient, thread
+    if isinstance(local_address, str):
+        if ':' in local_address:
+            interface, port = local_address.split(':')
+        else:
+            interface, port = '', local_address
+        local_address = interface, int(port)
     s1 = socket.socket()
     s1.bind(local_address)
     s1.listen(5)
@@ -163,5 +169,4 @@
                     print >> f, help
             io.sendmsg(msgstruct.MSG_ERROR, f.getvalue())
     else:
-        port = int(sys.argv[1])
-        listen_server(('', port))
+        listen_server(sys.argv[1])



More information about the Pypy-commit mailing list