| OLD | NEW |
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # Copyright (c) 2011 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
| 4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
| 5 | 5 |
| 6 """This is a simple HTTP/FTP/SYNC/TCP/UDP/ server used for testing Chrome. | 6 """This is a simple HTTP/FTP/SYNC/TCP/UDP/ server used for testing Chrome. |
| 7 | 7 |
| 8 It supports several test URLs, as specified by the handlers in TestPageHandler. | 8 It supports several test URLs, as specified by the handlers in TestPageHandler. |
| 9 By default, it listens on an ephemeral port and sends the port number back to | 9 By default, it listens on an ephemeral port and sends the port number back to |
| 10 the originating process over a pipe. The originating process can specify an | 10 the originating process over a pipe. The originating process can specify an |
| (...skipping 916 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 927 # "name: value" | 927 # "name: value" |
| 928 name, value = header_values[0] | 928 name, value = header_values[0] |
| 929 self.send_header(name, value) | 929 self.send_header(name, value) |
| 930 f.close() | 930 f.close() |
| 931 else: | 931 else: |
| 932 # Could be more generic once we support mime-type sniffing, but for | 932 # Could be more generic once we support mime-type sniffing, but for |
| 933 # now we need to set it explicitly. | 933 # now we need to set it explicitly. |
| 934 | 934 |
| 935 range = self.headers.get('Range') | 935 range = self.headers.get('Range') |
| 936 if range and range.startswith('bytes='): | 936 if range and range.startswith('bytes='): |
| 937 # Note this doesn't handle all valid byte range values (i.e. open ended | 937 # Note this doesn't handle all valid byte range values (i.e. left |
| 938 # ones), just enough for what we needed so far. | 938 # open ended ones), just enough for what we needed so far. |
| 939 range = range[6:].split('-') | 939 range = range[6:].split('-') |
| 940 start = int(range[0]) | 940 start = int(range[0]) |
| 941 end = int(range[1]) | 941 if range[1]: |
| 942 end = int(range[1]) |
| 943 else: |
| 944 end = len(data) |
| 942 | 945 |
| 943 self.send_response(206) | 946 self.send_response(206) |
| 944 content_range = 'bytes ' + str(start) + '-' + str(end) + '/' + \ | 947 content_range = 'bytes ' + str(start) + '-' + str(end) + '/' + \ |
| 945 str(len(data)) | 948 str(len(data)) |
| 946 self.send_header('Content-Range', content_range) | 949 self.send_header('Content-Range', content_range) |
| 947 data = data[start: end + 1] | 950 data = data[start: end + 1] |
| 948 else: | 951 else: |
| 949 self.send_response(200) | 952 self.send_response(200) |
| 950 | 953 |
| 951 self.send_header('Content-Type', self.GetMIMETypeFromName(file_path)) | 954 self.send_header('Content-Type', self.GetMIMETypeFromName(file_path)) |
| (...skipping 998 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1950 'random key if none is specified on the command ' | 1953 'random key if none is specified on the command ' |
| 1951 'line.') | 1954 'line.') |
| 1952 option_parser.add_option('', '--policy-user', default='user@example.com', | 1955 option_parser.add_option('', '--policy-user', default='user@example.com', |
| 1953 dest='policy_user', | 1956 dest='policy_user', |
| 1954 help='Specify the user name the server should ' | 1957 help='Specify the user name the server should ' |
| 1955 'report back to the client as the user owning the ' | 1958 'report back to the client as the user owning the ' |
| 1956 'token used for making the policy request.') | 1959 'token used for making the policy request.') |
| 1957 options, args = option_parser.parse_args() | 1960 options, args = option_parser.parse_args() |
| 1958 | 1961 |
| 1959 sys.exit(main(options, args)) | 1962 sys.exit(main(options, args)) |
| OLD | NEW |