Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 part of dart.io; | 5 part of dart.io; |
| 6 | 6 |
| 7 // Global constants. | 7 // Global constants. |
| 8 class _Const { | 8 class _Const { |
| 9 // Bytes for "HTTP". | 9 // Bytes for "HTTP". |
| 10 static const HTTP = const [72, 84, 84, 80]; | 10 static const HTTP = const [72, 84, 84, 80]; |
| 11 // Bytes for "HTTP/1.". | 11 // Bytes for "HTTP/1.". |
| 12 static const HTTP1DOT = const [72, 84, 84, 80, 47, 49, 46]; | 12 static const HTTP1DOT = const [72, 84, 84, 80, 47, 49, 46]; |
| 13 // Bytes for "HTTP/1.0". | 13 // Bytes for "HTTP/1.0". |
| 14 static const HTTP10 = const [72, 84, 84, 80, 47, 49, 46, 48]; | 14 static const HTTP10 = const [72, 84, 84, 80, 47, 49, 46, 48]; |
| 15 // Bytes for "HTTP/1.1". | 15 // Bytes for "HTTP/1.1". |
| 16 static const HTTP11 = const [72, 84, 84, 80, 47, 49, 46, 49]; | 16 static const HTTP11 = const [72, 84, 84, 80, 47, 49, 46, 49]; |
| 17 | 17 |
| 18 static const END_CHUNKED = const [0x30, 13, 10, 13, 10]; | 18 static const END_CHUNKED = const [0x30, 13, 10, 13, 10]; |
| 19 | 19 |
| 20 // Bytes for '()<>@,;:\\"/[]?={} \t'. | 20 // Bytes for '()<>@,;:\\"/[]?={} \t'. |
| 21 static const SEPARATORS = const [40, 41, 60, 62, 64, 44, 59, 58, 92, 34, 47, | 21 static const SEPARATORS = const [40, 41, 60, 62, 64, 44, 59, 58, 92, 34, 47, |
|
Søren Gjesse
2013/11/21 13:03:03
Is SEPARATORS still used?
Anders Johnsen
2013/11/21 13:14:41
Done.
| |
| 22 91, 93, 63, 61, 123, 125, 32, 9]; | 22 91, 93, 63, 61, 123, 125, 32, 9]; |
| 23 | 23 |
| 24 // Loopup-map for _isTokenChar. | |
|
Søren Gjesse
2013/11/21 13:03:03
Add the character-list from above to the comment.
Anders Johnsen
2013/11/21 13:14:41
Done.
| |
| 25 static const CHAR_MAP = const [ | |
|
Søren Gjesse
2013/11/21 13:03:03
CHAR_MAP -> TOKEN_CHAR_MAP
Anders Johnsen
2013/11/21 13:14:41
Done.
| |
| 26 false,false,false,false,false,false,false,false,false,false,false,false, | |
| 27 false,false,false,false,false,false,false,false,false,false,false,false, | |
| 28 false,false,false,false,false,false,false,false,false,true,false,true, | |
| 29 true,true,true,true,false,false,true,true,false,true,true,false,true,true, | |
| 30 true,true,true,true,true,true,true,true,false,false,false,false,false, | |
| 31 false,false,true,true,true,true,true,true,true,true,true,true,true,true, | |
| 32 true,true,true,true,true,true,true,true,true,true,true,true,true,true, | |
| 33 false,false,false,true,true,true,true,true,true,true,true,true,true,true, | |
| 34 true,true,true,true,true,true,true,true,true,true,true,true,true,true, | |
| 35 true,true,true,true,false,true,false,true,true,false,false,false,false, | |
| 36 false,false,false,false,false,false,false,false,false,false,false,false, | |
| 37 false,false,false,false,false,false,false,false,false,false,false,false, | |
| 38 false,false,false,false,false,false,false,false,false,false,false,false, | |
| 39 false,false,false,false,false,false,false,false,false,false,false,false, | |
| 40 false,false,false,false,false,false,false,false,false,false,false,false, | |
| 41 false,false,false,false,false,false,false,false,false,false,false,false, | |
| 42 false,false,false,false,false,false,false,false,false,false,false,false, | |
| 43 false,false,false,false,false,false,false,false,false,false,false,false, | |
| 44 false,false,false,false,false,false,false,false,false,false,false,false, | |
| 45 false,false,false,false,false,false,false,false,false,false,false,false, | |
| 46 false,false,false,false]; | |
| 47 | |
| 24 // Bytes for '()<>@,;:\\"/[]?={} \t\r\n'. | 48 // Bytes for '()<>@,;:\\"/[]?={} \t\r\n'. |
| 25 static const SEPARATORS_AND_CR_LF = const [40, 41, 60, 62, 64, 44, 59, 58, 92, | 49 static const SEPARATORS_AND_CR_LF = const [40, 41, 60, 62, 64, 44, 59, 58, 92, |
| 26 34, 47, 91, 93, 63, 61, 123, 125, | 50 34, 47, 91, 93, 63, 61, 123, 125, |
| 27 32, 9, 13, 10]; | 51 32, 9, 13, 10]; |
| 28 } | 52 } |
| 29 | 53 |
| 30 | 54 |
| 31 // Frequently used character codes. | 55 // Frequently used character codes. |
| 32 class _CharCode { | 56 class _CharCode { |
| 33 static const int HT = 9; | 57 static const int HT = 9; |
| (...skipping 794 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 828 _remainingContent = -1; | 852 _remainingContent = -1; |
| 829 | 853 |
| 830 _headers = null; | 854 _headers = null; |
| 831 } | 855 } |
| 832 | 856 |
| 833 _releaseBuffer() { | 857 _releaseBuffer() { |
| 834 _buffer = null; | 858 _buffer = null; |
| 835 _index = null; | 859 _index = null; |
| 836 } | 860 } |
| 837 | 861 |
| 838 bool _isTokenChar(int byte) { | 862 bool _isTokenChar(int byte) => _Const.CHAR_MAP[byte]; |
| 839 return byte > 31 && byte < 128 && _Const.SEPARATORS.indexOf(byte) == -1; | |
| 840 } | |
| 841 | 863 |
| 842 List<String> _tokenizeFieldValue(String headerValue) { | 864 List<String> _tokenizeFieldValue(String headerValue) { |
| 843 List<String> tokens = new List<String>(); | 865 List<String> tokens = new List<String>(); |
| 844 int start = 0; | 866 int start = 0; |
| 845 int index = 0; | 867 int index = 0; |
| 846 while (index < headerValue.length) { | 868 while (index < headerValue.length) { |
| 847 if (headerValue[index] == ",") { | 869 if (headerValue[index] == ",") { |
| 848 tokens.add(headerValue.substring(start, index)); | 870 tokens.add(headerValue.substring(start, index)); |
| 849 start = index + 1; | 871 start = index + 1; |
| 850 } else if (headerValue[index] == " " || headerValue[index] == "\t") { | 872 } else if (headerValue[index] == " " || headerValue[index] == "\t") { |
| (...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 983 _HttpHeaders _headers; | 1005 _HttpHeaders _headers; |
| 984 | 1006 |
| 985 // The current incoming connection. | 1007 // The current incoming connection. |
| 986 _HttpIncoming _incoming; | 1008 _HttpIncoming _incoming; |
| 987 StreamSubscription _socketSubscription; | 1009 StreamSubscription _socketSubscription; |
| 988 bool _paused = true; | 1010 bool _paused = true; |
| 989 bool _bodyPaused = false; | 1011 bool _bodyPaused = false; |
| 990 StreamController<_HttpIncoming> _controller; | 1012 StreamController<_HttpIncoming> _controller; |
| 991 StreamController<List<int>> _bodyController; | 1013 StreamController<List<int>> _bodyController; |
| 992 } | 1014 } |
| OLD | NEW |