rebaseline_server: report proper URL upon launch
BUG=skia:1767
(SkipBuildbotRuns)
R=jcgregorio@google.com
Review URL: https://codereview.chromium.org/51353002
git-svn-id: http://skia.googlecode.com/svn/trunk@12016 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/gm/rebaseline_server/server.py b/gm/rebaseline_server/server.py
index a15b9b9..94ed046 100755
--- a/gm/rebaseline_server/server.py
+++ b/gm/rebaseline_server/server.py
@@ -18,6 +18,7 @@
import posixpath
import re
import shutil
+import socket
import sys
import thread
import time
@@ -65,6 +66,17 @@
_SERVER = None # This gets filled in by main()
+def get_routable_ip_address():
+ """Returns routable IP address of this host (the IP address of its network
+ interface that would be used for most traffic, not its localhost
+ interface). See http://stackoverflow.com/a/166589 """
+ sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
+ sock.connect(('8.8.8.8', 80))
+ host = sock.getsockname()[0]
+ sock.close()
+ return host
+
+
class Server(object):
""" HTTP server for our HTML rebaseline viewer. """
@@ -164,15 +176,16 @@
if self._export:
server_address = ('', self._port)
+ host = get_routable_ip_address()
if self._editable:
logging.warning('Running with combination of "export" and "editable" '
'flags. Users on other machines will '
'be able to modify your GM expectations!')
else:
- server_address = ('127.0.0.1', self._port)
+ host = '127.0.0.1'
+ server_address = (host, self._port)
http_server = BaseHTTPServer.HTTPServer(server_address, HTTPRequestHandler)
- logging.info('Ready for requests on http://%s:%d' % (
- http_server.server_name, http_server.server_port))
+ logging.info('Ready for requests on http://%s:%d' % (host, http_server.server_port))
http_server.serve_forever()