Skip to content

Commit 1ee2529

Browse files
authored
Merge pull request iipc#65 from dportabella/fix
fix: last header was lost if LF LF (intead of CRLF CRLF)
2 parents c5876b3 + 9d7abed commit 1ee2529

2 files changed

Lines changed: 20 additions & 0 deletions

File tree

src/main/java/org/archive/format/http/HttpHeaderParser.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,7 @@ public ParseState handleByte(byte b, HttpHeaderParser parser)
231231
if(b == LF) {
232232
// TODO: this is lax, is LFLF an OK terminator?
233233
// that's all folks!
234+
parser.headerFinished();
234235
parser.parseFinished();
235236
return parser.endState;
236237
}

src/test/java/org/archive/format/http/HttpResponseParserTest.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,4 +38,23 @@ public void testParse() throws IOException {
3838

3939
}
4040

41+
public void testParseWithLf() throws IOException {
42+
43+
HttpResponseParser parser = new HttpResponseParser();
44+
String message = "200 OK\nContent-Type: text/plain\n\nHi there";
45+
try {
46+
HttpResponse response =
47+
parser.parse(new ByteArrayInputStream(message.getBytes(IAUtils.UTF8)));
48+
assertNotNull(response);
49+
HttpHeaders headers = response.getHeaders();
50+
assertNotNull(headers);
51+
assertEquals(1,headers.size());
52+
53+
} catch (HttpParseException e) {
54+
e.printStackTrace();
55+
fail();
56+
}
57+
58+
}
59+
4160
}

0 commit comments

Comments
 (0)