Skip to content

Commit 4b66747

Browse files
committed
Handle multiple 100 responses in cURL
Fixes #156
1 parent b52c4a8 commit 4b66747

File tree

2 files changed

+9
-9
lines changed

2 files changed

+9
-9
lines changed

specs/Specs_WebResponse.bas

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,8 @@ Public Function Specs() As SpecSuite
174174

175175
Request.Format = WebFormat.PlainText
176176
Curl = "HTTP/1.1 100 Continue" & vbCrLf & _
177+
vbCrLf & _
178+
"HTTP/1.1 100 Continue" & vbCrLf & _
177179
vbCrLf & _
178180
"HTTP/1.1 200 OK" & vbCrLf & _
179181
"Set-Cookie: message=Howdy!" & vbCrLf & _

src/WebResponse.cls

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -380,17 +380,15 @@ Private Function web_ExtractResponseTextFromCurlResponse(web_CurlResponseLines()
380380
End Function
381381

382382
Private Function web_FindStatusLine(web_CurlResponseLines() As String) As Long
383-
If VBA.Split(web_CurlResponseLines(0), " ")(1) = "100" Then
384-
' Special case for cURL: 100 Continue is included before final status code
385-
' -> ignore 100 and find final status code (next non-blank line)
386-
For web_FindStatusLine = 1 To UBound(web_CurlResponseLines)
387-
If VBA.Trim$(web_CurlResponseLines(web_FindStatusLine)) <> "" Then
383+
' Special case for cURL: 100 Continue is included before final status code
384+
' -> ignore 100 and find final status code (next non-100 status code)
385+
For web_FindStatusLine = LBound(web_CurlResponseLines) To UBound(web_CurlResponseLines)
386+
If VBA.Trim$(web_CurlResponseLines(web_FindStatusLine)) <> "" Then
387+
If VBA.Split(web_CurlResponseLines(web_FindStatusLine), " ")(1) <> "100" Then
388388
Exit Function
389389
End If
390-
Next web_FindStatusLine
391-
Else
392-
web_FindStatusLine = 0
393-
End If
390+
End If
391+
Next web_FindStatusLine
394392
End Function
395393

396394
Private Function web_FindBlankLine(web_CurlResponseLines() As String) As Long

0 commit comments

Comments
 (0)