diff --git a/breakpad.py b/breakpad.py index cb9b79dca..45a5bad08 100644 --- a/breakpad.py +++ b/breakpad.py @@ -7,7 +7,7 @@ Sends a notification when a process stops on an exception. It is only enabled when all these conditions are met: - 1. hostname finishes with '.google.com' + 1. hostname finishes with '.google.com' or 'chromium.org' 2. main module name doesn't contain the word 'test' 3. no NO_BREAKPAD environment variable is defined """ @@ -26,10 +26,13 @@ import urllib2 # Configure these values. DEFAULT_URL = 'https://chromium-status.appspot.com' +# Global variable to prevent double registration. _REGISTERED = False _TIME_STARTED = time.time() +_HOST_NAME = socket.getfqdn() + def post(url, params): """HTTP POST with timeout when it's supported.""" @@ -81,7 +84,7 @@ def SendStack(last_tb, stack, url=None, maxlen=50): 'stack': stack[0:4096], 'user': getpass.getuser(), 'exception': FormatException(last_tb), - 'host': socket.getfqdn(), + 'host': _HOST_NAME, 'cwd': os.getcwd(), 'version': sys.version, } @@ -99,6 +102,8 @@ def SendProfiling(url=None): url = DEFAULT_URL + '/profiling' params = { 'argv': ' '.join(sys.argv), + # Strip the hostname. + 'domain': _HOST_NAME.split('.', 1)[-1], 'duration': time.time() - _TIME_STARTED, 'platform': sys.platform, } @@ -131,8 +136,8 @@ def Register(): # Skip unit tests and we don't want anything from non-googler. if (not 'test' in sys.modules['__main__'].__file__ and not 'NO_BREAKPAD' in os.environ and - (socket.getfqdn().endswith('.google.com') or - socket.getfqdn().endswith('.chromium.org'))): + (_HOST_NAME.endswith('.google.com') or + _HOST_NAME.endswith('.chromium.org'))): Register() # Uncomment this line if you want to test it out.