Merged
Conversation
fix simplepie#942 Some feeds are not parsed correctly due to wrong handling of [HTTP trailer headers](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Trailer) such as [Server-Timing](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Server-Timing). Example of feed: https://www.caranddriver.com/rss/all.xml (Note that the bug may or may not exhibit itself depending on the cURL and PHP versions) Downstream discussion: * FreshRSS/FreshRSS#7981 * FreshRSS/FreshRSS#7983 SimplePie tries to XML parse something like `</rss>server-timing: rtt; dur=6.131, retrans; dur=0, trailer-timestamp; dur=1758222994925` which obviously fails. In the case of normal HTTP transfer (not chunked), we need to use content-length to know where the body stops, but content-length is wrong if any compression was used. So I believe we should let cURL perform the separation of HTTP headers and body instead of using the SimplePie parser.
…eaders fix simplepie#942 Some feeds are not parsed correctly due to wrong handling of [HTTP trailer headers](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Trailer) such as [Server-Timing](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Server-Timing). Example of feed: https://www.caranddriver.com/rss/all.xml (Note that the bug may or may not exhibit itself depending on the cURL and PHP versions) Downstream discussion: * FreshRSS/FreshRSS#7981 * FreshRSS/FreshRSS#7983 SimplePie tries to XML parse something like `</rss>server-timing: rtt; dur=6.131, retrans; dur=0, trailer-timestamp; dur=1758222994925` which obviously fails. In the case of normal HTTP transfer (not chunked), we need to use content-length to know where the body stops, but content-length is wrong if any compression was used. So I believe we should let cURL perform the separation of HTTP headers and body instead of using the SimplePie parser.
Alkarex
added a commit
that referenced
this pull request
Sep 20, 2025
Follow-up of #55 For FreshRSS/FreshRSS#7983
Alkarex
added a commit
that referenced
this pull request
Sep 20, 2025
Alkarex
added a commit
to Alkarex/FreshRSS
that referenced
this pull request
Sep 20, 2025
Alkarex
added a commit
to FreshRSS/FreshRSS
that referenced
this pull request
Oct 1, 2025
* Fix SimplePie support of HTTP trailer headers fix #7981 https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Trailer https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Server-Timing We need to use content-length to know where the body stops, but content-length is wrong is any compression was used. So let cURL perform the separation of HTTP headers and body instead of using the SimplePie parser. * Minor whitespace * Same change for lib_rss * Move changes to SimplePie repo FreshRSS/simplepie#55 FreshRSS/simplepie#57
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
fix simplepie#942
Some feeds are not parsed correctly due to wrong handling of HTTP trailer headers such as Server-Timing.
Example of feed:
https://www.caranddriver.com/rss/all.xml
(Note that the bug may or may not exhibit itself depending on the cURL and PHP versions)
Downstream discussion:
SimplePie tries to XML parse something like
</rss>server-timing: rtt; dur=6.131, retrans; dur=0, trailer-timestamp; dur=1758222994925which obviously fails.In the case of normal HTTP transfer (not chunked), we need to use content-length to know where the body stops, but content-length is wrong if any compression was used.
So I believe we should let cURL perform the separation of HTTP headers and body instead of using the SimplePie parser.