Mercurial Hosting > luan
comparison src/org/eclipse/jetty/http/HttpParser.java @ 1054:87275900646e
remove JBuffer.toString()
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Tue, 08 Nov 2016 01:03:02 -0700 |
parents | 7e4b41247544 |
children | 013939bfc9e8 |
comparison
equal
deleted
inserted
replaced
1053:7e4b41247544 | 1054:87275900646e |
---|---|
87 | 87 |
88 private void mark() { | 88 private void mark() { |
89 _mark = _buffer.getIndex() - 1; | 89 _mark = _buffer.getIndex() - 1; |
90 } | 90 } |
91 | 91 |
92 private JBuffer sliceFromMark() { | 92 private String sliceFromMark() { |
93 JBuffer buf = _buffer.duplicate(); | 93 JBuffer buf = _buffer.duplicate(); |
94 buf.position(_mark); | 94 buf.position(_mark); |
95 buf.limit(_buffer.position()-1); | 95 buf.limit(_buffer.position()-1); |
96 _mark = -1; | 96 _mark = -1; |
97 return buf; | 97 return BufferUtil.getString(buf); |
98 } | 98 } |
99 | 99 |
100 private void clear() { | 100 private void clear() { |
101 _buffer.clear(); | 101 _buffer.clear(); |
102 _mark = -1; | 102 _mark = -1; |
112 _buffer.setGetIndex( old - _mark ); | 112 _buffer.setGetIndex( old - _mark ); |
113 _mark = 0; | 113 _mark = 0; |
114 } | 114 } |
115 } | 115 } |
116 | 116 |
117 public JBuffer getBuffer(int length) { | 117 private JBuffer getBuffer(int length) { |
118 JBuffer dup = _buffer.duplicate(); | 118 JBuffer dup = _buffer.duplicate(); |
119 int end = _buffer.position() + length; | 119 int end = _buffer.position() + length; |
120 dup.limit(end); | 120 dup.limit(end); |
121 _buffer.position(end); | 121 _buffer.position(end); |
122 return dup; | 122 return dup; |
123 } | 123 } |
124 | 124 |
125 public byte peek() { | 125 private byte peek() { |
126 return _buffer.get(_buffer.position()); | 126 return _buffer.get(_buffer.position()); |
127 } | |
128 | |
129 private String bufferToString(int index, int length) { | |
130 JBuffer dup = _buffer.duplicate(); | |
131 dup.limit(index+length); | |
132 dup.position(index); | |
133 return BufferUtil.getString(dup); | |
127 } | 134 } |
128 | 135 |
129 | 136 |
130 public long getContentLength() | 137 public long getContentLength() |
131 { | 138 { |
326 break; | 333 break; |
327 | 334 |
328 case STATE_FIELD0: | 335 case STATE_FIELD0: |
329 if (ch == HttpTokens.SPACE) | 336 if (ch == HttpTokens.SPACE) |
330 { | 337 { |
331 _tok0 = _buffer.toString(_mark, _buffer.getIndex() - 1 - _mark); | 338 _tok0 = bufferToString(_mark, _buffer.getIndex() - 1 - _mark); |
332 _responseStatus = !HttpVersions.CACHE.contains(_tok0)?-1:0; | 339 _responseStatus = !HttpVersions.CACHE.contains(_tok0)?-1:0; |
333 _state=STATE_SPACE1; | 340 _state=STATE_SPACE1; |
334 continue; | 341 continue; |
335 } | 342 } |
336 else if (ch < HttpTokens.SPACE && ch>=0) | 343 else if (ch < HttpTokens.SPACE && ch>=0) |
359 | 366 |
360 case STATE_STATUS: | 367 case STATE_STATUS: |
361 if (ch == HttpTokens.SPACE) | 368 if (ch == HttpTokens.SPACE) |
362 { | 369 { |
363 // _tok1.update(_mark, _buffer.getIndex() - 1); | 370 // _tok1.update(_mark, _buffer.getIndex() - 1); |
364 _tok1 = _buffer.toString(_mark, _buffer.getIndex() - 1 - _mark); | 371 _tok1 = bufferToString(_mark, _buffer.getIndex() - 1 - _mark); |
365 _state = STATE_SPACE2; | 372 _state = STATE_SPACE2; |
366 continue; | 373 continue; |
367 } | 374 } |
368 else if (ch>='0' && ch<='9') | 375 else if (ch>='0' && ch<='9') |
369 { | 376 { |
386 | 393 |
387 case STATE_URI: | 394 case STATE_URI: |
388 if (ch == HttpTokens.SPACE) | 395 if (ch == HttpTokens.SPACE) |
389 { | 396 { |
390 // _tok1.update(_mark, _buffer.getIndex() - 1); | 397 // _tok1.update(_mark, _buffer.getIndex() - 1); |
391 _tok1 = _buffer.toString(_mark, _buffer.getIndex() - 1 - _mark); | 398 _tok1 = bufferToString(_mark, _buffer.getIndex() - 1 - _mark); |
392 _state=STATE_SPACE2; | 399 _state=STATE_SPACE2; |
393 continue; | 400 continue; |
394 } | 401 } |
395 else if (ch < HttpTokens.SPACE && ch>=0) | 402 else if (ch < HttpTokens.SPACE && ch>=0) |
396 { | 403 { |
397 // HTTP/0.9 | 404 // HTTP/0.9 |
398 _handler.startRequest(_tok0, sliceFromMark().toString(), null); | 405 _handler.startRequest(_tok0, sliceFromMark(), null); |
399 _persistent = false; | 406 _persistent = false; |
400 _state = STATE_SEEKING_EOF; | 407 _state = STATE_SEEKING_EOF; |
401 _handler.headerComplete(); | 408 _handler.headerComplete(); |
402 _handler.messageComplete(_contentPosition); | 409 _handler.messageComplete(_contentPosition); |
403 return 1; | 410 return 1; |
439 String version; | 446 String version; |
440 if (_responseStatus > 0) | 447 if (_responseStatus > 0) |
441 // _handler.startResponse(version=HttpVersions.CACHE.lookup(_tok0), _responseStatus,sliceFromMark()); | 448 // _handler.startResponse(version=HttpVersions.CACHE.lookup(_tok0), _responseStatus,sliceFromMark()); |
442 version = _tok0; | 449 version = _tok0; |
443 else | 450 else |
444 _handler.startRequest(_tok0, _tok1, version=sliceFromMark().toString()); | 451 _handler.startRequest(_tok0, _tok1, version=sliceFromMark()); |
445 _eol=ch; | 452 _eol=ch; |
446 _persistent = HttpVersions.CACHE.getOrdinal(version) >= HttpVersions.HTTP_1_1_ORDINAL; | 453 _persistent = HttpVersions.CACHE.getOrdinal(version) >= HttpVersions.HTTP_1_1_ORDINAL; |
447 _state=STATE_HEADER; | 454 _state=STATE_HEADER; |
448 _tok0 = ""; | 455 _tok0 = ""; |
449 _tok1 = ""; | 456 _tok1 = ""; |
635 switch(ch) | 642 switch(ch) |
636 { | 643 { |
637 case HttpTokens.CARRIAGE_RETURN: | 644 case HttpTokens.CARRIAGE_RETURN: |
638 case HttpTokens.LINE_FEED: | 645 case HttpTokens.LINE_FEED: |
639 if (_length > 0) { | 646 if (_length > 0) { |
640 _tok0 = _buffer.toString(_mark, _length); | 647 _tok0 = bufferToString(_mark, _length); |
641 } | 648 } |
642 _eol=ch; | 649 _eol=ch; |
643 _state=STATE_HEADER; | 650 _state=STATE_HEADER; |
644 break; | 651 break; |
645 case HttpTokens.COLON: | 652 case HttpTokens.COLON: |
646 if (_length > 0 && _cached==null) { | 653 if (_length > 0 && _cached==null) { |
647 _tok0 = _buffer.toString(_mark, _length); | 654 _tok0 = bufferToString(_mark, _length); |
648 } | 655 } |
649 _length=-1; | 656 _length=-1; |
650 _state=STATE_HEADER_VALUE; | 657 _state=STATE_HEADER_VALUE; |
651 break; | 658 break; |
652 case HttpTokens.SPACE: | 659 case HttpTokens.SPACE: |
668 switch(ch) | 675 switch(ch) |
669 { | 676 { |
670 case HttpTokens.CARRIAGE_RETURN: | 677 case HttpTokens.CARRIAGE_RETURN: |
671 case HttpTokens.LINE_FEED: | 678 case HttpTokens.LINE_FEED: |
672 if (_length > 0) { | 679 if (_length > 0) { |
673 _tok0 = _buffer.toString(_mark,_length); | 680 _tok0 = bufferToString(_mark,_length); |
674 } | 681 } |
675 _eol=ch; | 682 _eol=ch; |
676 _state=STATE_HEADER; | 683 _state=STATE_HEADER; |
677 break; | 684 break; |
678 case HttpTokens.COLON: | 685 case HttpTokens.COLON: |
679 if (_length > 0 && _cached==null) { | 686 if (_length > 0 && _cached==null) { |
680 _tok0 = _buffer.toString(_mark,_length); | 687 _tok0 = bufferToString(_mark,_length); |
681 } | 688 } |
682 _length=-1; | 689 _length=-1; |
683 _state=STATE_HEADER_VALUE; | 690 _state=STATE_HEADER_VALUE; |
684 break; | 691 break; |
685 case HttpTokens.SPACE: | 692 case HttpTokens.SPACE: |
701 case HttpTokens.LINE_FEED: | 708 case HttpTokens.LINE_FEED: |
702 if (_length > 0) | 709 if (_length > 0) |
703 { | 710 { |
704 if (_tok1.length() == 0) | 711 if (_tok1.length() == 0) |
705 // _tok1.update(_mark, _mark + _length); | 712 // _tok1.update(_mark, _mark + _length); |
706 _tok1 = _buffer.toString(_mark, _length); | 713 _tok1 = bufferToString(_mark, _length); |
707 else | 714 else |
708 { | 715 { |
709 // Continuation line! | 716 // Continuation line! |
710 if (_multiLineValue == null) _multiLineValue = _tok1; | 717 if (_multiLineValue == null) _multiLineValue = _tok1; |
711 // _tok1.update(_mark, _mark + _length); | 718 // _tok1.update(_mark, _mark + _length); |
712 _tok1 = _buffer.toString(_mark, _length); | 719 _tok1 = bufferToString(_mark, _length); |
713 _multiLineValue += " " + _tok1; | 720 _multiLineValue += " " + _tok1; |
714 } | 721 } |
715 } | 722 } |
716 _eol=ch; | 723 _eol=ch; |
717 _state=STATE_HEADER; | 724 _state=STATE_HEADER; |
736 case HttpTokens.LINE_FEED: | 743 case HttpTokens.LINE_FEED: |
737 if (_length > 0) | 744 if (_length > 0) |
738 { | 745 { |
739 if (_tok1.length() == 0) | 746 if (_tok1.length() == 0) |
740 // _tok1.update(_mark, _mark + _length); | 747 // _tok1.update(_mark, _mark + _length); |
741 _tok1 = _buffer.toString(_mark, _length); | 748 _tok1 = bufferToString(_mark, _length); |
742 else | 749 else |
743 { | 750 { |
744 // Continuation line! | 751 // Continuation line! |
745 if (_multiLineValue == null) _multiLineValue = _tok1; | 752 if (_multiLineValue == null) _multiLineValue = _tok1; |
746 // _tok1.update(_mark, _mark + _length); | 753 // _tok1.update(_mark, _mark + _length); |
747 _tok1 = _buffer.toString(_mark, _length); | 754 _tok1 = bufferToString(_mark, _length); |
748 _multiLineValue += " " + _tok1; | 755 _multiLineValue += " " + _tok1; |
749 } | 756 } |
750 } | 757 } |
751 _eol=ch; | 758 _eol=ch; |
752 _state=STATE_HEADER; | 759 _state=STATE_HEADER; |