Mercurial Hosting > luan
comparison src/org/eclipse/jetty/http/HttpParser.java @ 1020:6be43ef1eb96
HttpHeaderValues uses StringCache
| author | Franklin Schmidt <fschmidt@gmail.com> |
|---|---|
| date | Mon, 31 Oct 2016 22:24:41 -0600 |
| parents | f126d30e04a4 |
| children | e350c11242be |
comparison
equal
deleted
inserted
replaced
| 1019:f126d30e04a4 | 1020:6be43ef1eb96 |
|---|---|
| 436 // handler last header if any | 436 // handler last header if any |
| 437 if (_cached!=null || _tok0.length() > 0 || _tok1.length() > 0 || _multiLineValue != null) | 437 if (_cached!=null || _tok0.length() > 0 || _tok1.length() > 0 || _multiLineValue != null) |
| 438 { | 438 { |
| 439 Buffer header=_cached!=null?_cached:HttpHeaders.CACHE.lookup(_tok0); | 439 Buffer header=_cached!=null?_cached:HttpHeaders.CACHE.lookup(_tok0); |
| 440 _cached=null; | 440 _cached=null; |
| 441 Buffer value=_multiLineValue == null ? _tok1 : new ByteArrayBuffer(_multiLineValue); | 441 String value = _multiLineValue == null ? _tok1.toString() : _multiLineValue; |
| 442 | 442 |
| 443 int ho=HttpHeaders.CACHE.getOrdinal(header); | 443 int ho=HttpHeaders.CACHE.getOrdinal(header); |
| 444 if (ho >= 0) | 444 if (ho >= 0) |
| 445 { | 445 { |
| 446 int vo; | 446 int vo; |
| 463 _contentLength=HttpTokens.NO_CONTENT; | 463 _contentLength=HttpTokens.NO_CONTENT; |
| 464 } | 464 } |
| 465 break; | 465 break; |
| 466 | 466 |
| 467 case HttpHeaders.TRANSFER_ENCODING_ORDINAL: | 467 case HttpHeaders.TRANSFER_ENCODING_ORDINAL: |
| 468 value=HttpHeaderValues.CACHE.lookup(value); | 468 // value=HttpHeaderValues.CACHE.lookup(value); |
| 469 vo=HttpHeaderValues.CACHE.getOrdinal(value); | 469 vo = HttpHeaderValues.CACHE.getOrdinal(value); |
| 470 if (HttpHeaderValues.CHUNKED_ORDINAL == vo) | 470 if (HttpHeaderValues.CHUNKED_ORDINAL == vo) |
| 471 _contentLength=HttpTokens.CHUNKED_CONTENT; | 471 _contentLength=HttpTokens.CHUNKED_CONTENT; |
| 472 else | 472 else |
| 473 { | 473 { |
| 474 String c=value.toString(StringUtil.__ISO_8859_1); | 474 if (value.endsWith(HttpHeaderValues.CHUNKED)) |
| 475 if (c.endsWith(HttpHeaderValues.CHUNKED)) | |
| 476 _contentLength=HttpTokens.CHUNKED_CONTENT; | 475 _contentLength=HttpTokens.CHUNKED_CONTENT; |
| 477 | 476 |
| 478 else if (c.indexOf(HttpHeaderValues.CHUNKED) >= 0) | 477 else if (value.indexOf(HttpHeaderValues.CHUNKED) >= 0) |
| 479 throw new HttpException(400,null); | 478 throw new HttpException(400,null); |
| 480 } | 479 } |
| 481 break; | 480 break; |
| 482 | 481 |
| 483 case HttpHeaders.CONNECTION_ORDINAL: | 482 case HttpHeaders.CONNECTION_ORDINAL: |
| 491 _persistent=true; | 490 _persistent=true; |
| 492 break; | 491 break; |
| 493 | 492 |
| 494 case -1: // No match, may be multi valued | 493 case -1: // No match, may be multi valued |
| 495 { | 494 { |
| 496 for (String v : value.toString().split(",")) | 495 for (String v : value.split(",")) |
| 497 { | 496 { |
| 498 switch(HttpHeaderValues.CACHE.getOrdinal(v.trim())) | 497 switch(HttpHeaderValues.CACHE.getOrdinal(v.trim())) |
| 499 { | 498 { |
| 500 case HttpHeaderValues.CLOSE_ORDINAL: | 499 case HttpHeaderValues.CLOSE_ORDINAL: |
| 501 _persistent=false; | 500 _persistent=false; |
| 1141 public void messageComplete(long contentLength) throws IOException; | 1140 public void messageComplete(long contentLength) throws IOException; |
| 1142 | 1141 |
| 1143 /** | 1142 /** |
| 1144 * This is the method called by parser when a HTTP Header name and value is found | 1143 * This is the method called by parser when a HTTP Header name and value is found |
| 1145 */ | 1144 */ |
| 1146 public void parsedHeader(Buffer name, Buffer value) throws IOException; | 1145 public void parsedHeader(Buffer name, String value) throws IOException; |
| 1147 | 1146 |
| 1148 /** | 1147 /** |
| 1149 * This is the method called by parser when the HTTP request line is parsed | 1148 * This is the method called by parser when the HTTP request line is parsed |
| 1150 */ | 1149 */ |
| 1151 public abstract void startRequest(String method, Buffer url, String version) | 1150 public abstract void startRequest(String method, Buffer url, String version) |
