From: epoger@google.com Date: Wed, 30 Oct 2013 14:09:04 +0000 (+0000) Subject: rebaseline_server: report proper URL upon launch X-Git-Tag: accepted/tizen/5.0/unified/20181102.025319~10234 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b08c707847be4b0c94adf592912b4e7073f71ecb;p=platform%2Fupstream%2FlibSkiaSharp.git 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 os import posixpath import re import shutil +import socket import sys import thread import time @@ -65,6 +66,17 @@ _HTTP_HEADER_CONTENT_TYPE = 'Content-Type' _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 @@ class Server(object): 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()