0.11.0 - SASL EXTERNAL support (XEP-0178) - Client certificate can be provided for TLS negotiation. If the certificate contains a single xmppAddr and JID is not provided with xmpp_conn_set_jid(), the xmppAddr is chosen as JID - element contains "from" attribute over TLS connections now - GnuTLS can be selected optionally with configure script - Support for manual certificate verification - New API: - xmpp_conn_set_client_cert() - xmpp_conn_cert_xmppaddr_num() - xmpp_conn_cert_xmppaddr() - xmpp_conn_set_cafile() - xmpp_conn_set_capath() - xmpp_conn_set_certfail_handler() - xmpp_conn_get_peer_cert() - xmpp_tlscert_get_ctx() - xmpp_tlscert_get_conn() - xmpp_tlscert_get_pem() - xmpp_tlscert_get_dnsname() - xmpp_tlscert_get_string() - xmpp_tlscert_get_description() - xmpp_tlscert_free() 0.10.1 - Fixed compilation error when LibreSSL is used - Fixed crash when NULL is provided as password 0.10.0 - Coding style has been unified - SCRAM-SHA-256 and SCRAM-SHA-512 support - c-ares support - LibreSSL support - Introduced global timed handlers that fire periodically regardless of connections status, such a handler can be used to implement deferred re-connection - examples/register implements XEP-0077 - Fixed issue with IPv6 on Windows (#153) - Improved portability across systems such as Haiku, Windows - New API: - xmpp_stanza_get_child_by_name_and_ns() - xmpp_conn_is_connecting() - xmpp_conn_is_connected() - xmpp_conn_is_disconnected() - xmpp_stanza_new_from_string() - xmpp_stanza_add_child_ex() - xmpp_stanza_get_context() - xmpp_stanza_reply_error() - xmpp_global_timed_handler_add() - xmpp_global_timed_handler_delete() 0.9.3 - PLAIN mechanism is used only when no other mechanisms are supported - Legacy authentication is disabled by default, can be enabled with connection flag XMPP_CONN_FLAG_LEGACY_AUTH - Session is not established if it is optional - Fixed a bug causing a reused connection not to cleanup properly - Improved debug logging in OpenSSL module - Few memory leaks fixed 0.9.2 - OpenSSL tls module verifies certificate by default. Set flag XMPP_CONN_FLAG_TRUST_TLS to ignore result of the verification - Certificate hostname verification is forced for openssl-1.0.2 and newer - OpenSSL tls module disables insecure SSLv2 SSLv3 and TLSv1 - Support of handlers with the same callback function, but different userdata - System handlers are deleted on xmpp_conn_t reconnection. Old system handlers could cause problems - Default timeout for xmpp_run() is increased from 1 millisecond to 1 second in order to reduce CPU consumption - Reduced memory usage in expat module - New functions: - xmpp_error_new() - xmpp_send_error() - xmpp_ctx_set_timeout() - xmpp_sha1_digest() 0.9.1 - Fixed bug #95 (DNS lookup failing on Cygwin) - Removed dependency on the check package 0.9.0 - IPv6 support - Legacy SSL support - Initial Android support - Resolver returns all SRV records instead of one. Lookup is performed according to RFC2052 - xmpp_connect_raw() provides access to a xmpp_conn object just after establishing TCP connection. This allows to implement in-band registration, authentication mechanisms or serverless messaging - xmpp_conn_t object is reusable now and can be reconnected with saving all handlers, flags, jid and password - New API: - xmpp_uuid_gen() - xmpp_connect_raw() - xmpp_conn_open_stream_default() - xmpp_conn_open_stream() - xmpp_conn_tls_start() - xmpp_conn_get_flags() - xmpp_conn_set_flags() - xmpp_conn_set_keepalive() - xmpp_conn_is_secured() - xmpp_stanza_del_attribute() - xmpp_stanza_get_to() - xmpp_stanza_get_from() - xmpp_stanza_set_to() - xmpp_stanza_set_from() - xmpp_stanza_reply() - xmpp_message_new() - xmpp_message_get_body() - xmpp_message_set_body() - xmpp_iq_new() - xmpp_presence_new() - Exposed private API: - xmpp_jid_new() - xmpp_jid_bare() - xmpp_jid_node() - xmpp_jid_domain() - xmpp_jid_resource() - xmpp_stanza_get_attribute_count() - xmpp_stanza_get_attributes() 0.8.8 - XML namespace support - XEP-0114 support 0.8.7 - SCRAM-SHA-1 authentication mechanism - pkg-config support 0.8.5 - libtoolize to generate .so