Ignore unexpected but legal SAX events, such as comments and processing instructions.
Ported authentication to GNU SASL. Currently, only the PLAIN mechanism is supported.
In TLS mode, check for pending data before calling ``tlsRecv``. If no data is pending, wait for some first. By waiting for input in Haskell code, SIGINT will work again.
Change JIDs to be unformatted when shown -- turns out using show for formatting was a dumb idea, because it would typecheck even if the value was no longer a JID.
Extracted incremental XML parsing to a separate library.
Cleaned unused and duplicate imports, and added some type declarations.
Moved utility functions into Util module.
Add constructors for the Bind and Session features.
Re-open the stream after authentication.
Use ``getTree`` to parse the <stream:features> element.
Started work on authentication support.
Implemented enough parsing to get the list of stream features and SASL mechanisms.