| OLD | NEW |
| 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 """Generic utils.""" | 5 """Generic utils.""" |
| 6 | 6 |
| 7 import codecs | 7 import codecs |
| 8 import errno | 8 import errno |
| 9 import logging | 9 import logging |
| 10 import os | 10 import os |
| (...skipping 734 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 745 return url | 745 return url |
| 746 if not re.match(r'[a-z\-]+\://.*', url): | 746 if not re.match(r'[a-z\-]+\://.*', url): |
| 747 # Make sure it is a valid uri. Otherwise, urlparse() will consider it a | 747 # Make sure it is a valid uri. Otherwise, urlparse() will consider it a |
| 748 # relative url and will use http:///foo. Note that it defaults to http:// | 748 # relative url and will use http:///foo. Note that it defaults to http:// |
| 749 # for compatibility with naked url like "localhost:8080". | 749 # for compatibility with naked url like "localhost:8080". |
| 750 url = 'http://%s' % url | 750 url = 'http://%s' % url |
| 751 parsed = list(urlparse.urlparse(url)) | 751 parsed = list(urlparse.urlparse(url)) |
| 752 # Do not automatically upgrade http to https if a port number is provided. | 752 # Do not automatically upgrade http to https if a port number is provided. |
| 753 if parsed[0] == 'http' and not re.match(r'^.+?\:\d+$', parsed[1]): | 753 if parsed[0] == 'http' and not re.match(r'^.+?\:\d+$', parsed[1]): |
| 754 parsed[0] = 'https' | 754 parsed[0] = 'https' |
| 755 # Until GAE supports SNI, manually convert the url. | |
| 756 if parsed[1] == 'codereview.chromium.org': | |
| 757 parsed[1] = 'chromiumcodereview.appspot.com' | |
| 758 return urlparse.urlunparse(parsed) | 755 return urlparse.urlunparse(parsed) |
| 759 | 756 |
| 760 | 757 |
| 761 def ParseCodereviewSettingsContent(content): | 758 def ParseCodereviewSettingsContent(content): |
| 762 """Process a codereview.settings file properly.""" | 759 """Process a codereview.settings file properly.""" |
| 763 lines = (l for l in content.splitlines() if not l.strip().startswith("#")) | 760 lines = (l for l in content.splitlines() if not l.strip().startswith("#")) |
| 764 try: | 761 try: |
| 765 keyvals = dict([x.strip() for x in l.split(':', 1)] for l in lines if l) | 762 keyvals = dict([x.strip() for x in l.split(':', 1)] for l in lines if l) |
| 766 except ValueError: | 763 except ValueError: |
| 767 raise Error( | 764 raise Error( |
| 768 'Failed to process settings, please fix. Content:\n\n%s' % content) | 765 'Failed to process settings, please fix. Content:\n\n%s' % content) |
| 769 def fix_url(key): | 766 def fix_url(key): |
| 770 if keyvals.get(key): | 767 if keyvals.get(key): |
| 771 keyvals[key] = UpgradeToHttps(keyvals[key]) | 768 keyvals[key] = UpgradeToHttps(keyvals[key]) |
| 772 fix_url('CODE_REVIEW_SERVER') | 769 fix_url('CODE_REVIEW_SERVER') |
| 773 fix_url('VIEW_VC') | 770 fix_url('VIEW_VC') |
| 774 return keyvals | 771 return keyvals |
| OLD | NEW |