You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
# ParseStream - takes the incoming stream and makes sure that only full
# XML tags gets passed to the parser. If a full tag has not
# read yet, then the Stream saves the incomplete part and
# sends the rest to the parser.
However, it doesn't seem to have any of the described capability, even though the calling code (like in XML::Stream::OpenStream) seems to assume it works as described by blindly passing in data from the network.
A recent version of the Openfire server passes partial XML fragments over the network, at least when restarting a session after TLS and auth. XML::Stream::ParseStream receives "<" in one invocation, followed by "?xml ....." and the rest of the document in another invocation, confusing the parser.
So, XML::Stream::ParseStream needs to buffer partial XML documents until they're ready to be parsed, as described in its documentation.
The text was updated successfully, but these errors were encountered:
This was fixed a while back in an as-yet unmerged pull request (#11). I'm going to rebase that one now as there have been changes upstream. Hopefully this will get merged into an upcoming release.
The documentation for this function claims:
However, it doesn't seem to have any of the described capability, even though the calling code (like in XML::Stream::OpenStream) seems to assume it works as described by blindly passing in data from the network.
A recent version of the Openfire server passes partial XML fragments over the network, at least when restarting a session after TLS and auth. XML::Stream::ParseStream receives "<" in one invocation, followed by "?xml ....." and the rest of the document in another invocation, confusing the parser.
So, XML::Stream::ParseStream needs to buffer partial XML documents until they're ready to be parsed, as described in its documentation.
The text was updated successfully, but these errors were encountered: