Skip to content

Remove requirement for trailing line break on terminal boundary #52

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
mjfaga opened this issue Mar 21, 2025 · 0 comments · May be fixed by #53
Open

Remove requirement for trailing line break on terminal boundary #52

mjfaga opened this issue Mar 21, 2025 · 0 comments · May be fixed by #53

Comments

@mjfaga
Copy link

mjfaga commented Mar 21, 2025

According to the multipart content-type spec, their is no requirement that there be a trailing line break on the close delimiter. I cross referenced this with the current apollo client implementation, which also does not look for a trailing line-break (anywhere in fact)

Overall, the body of a multipart entity may be specified as follows:
multipart-body := preamble 1*encapsulation
close-delimiter epilogue

encapsulation := delimiter CRLF body-part

delimiter := CRLF "--" boundary ; taken from Content-Type field.
; when content-type is multipart
; There must be no space
; between "--" and boundary.

close-delimiter := delimiter "--" ; Again, no space before "--"

preamble := *text ; to be ignored upon receipt.

epilogue := *text ; to be ignored upon receipt.

body-part = <"message" as defined in RFC 822, with all header fields optional, and with the specified delimiter not occurring anywhere in the message body, either on a line by itself or as a substring anywhere. Note that the semantics of a part differ from the semantics of a message, as described in the text.>

Currently, servers that do not add this additional line break (like [GraphQL-ruby pro]) result in the last multipart chunk not being recognized.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant