0.13.1 - Fix SCRAM-*-PLUS SASL mechanisms with OpenSSL and TLS < v1.3 (40f2452) - Only signal "stream negotiation success" once (1cf09b1) - Fix `sock_connect()` not looping over all DNS records returned if no `sockopt_cb` is set (5edc480) - Replace usage of EBADFD, it's not in POSIX (#235) 0.13.0 - Fix connected/connecting signaling to user (#227) - Fix wording of licensing terms (#225) - Prepare for future changes in OpenSSL (#226) - Improve Stream Management (#227) (#230) - Add SCRAM-PLUS Variants (#228) - Introduce XEP-0138 stream compression (#231) - Deprecated the following API (#227): - xmpp_conn_disable_tls() - replaced by a flag set by xmpp_conn_set_flags() 0.12.3 - Improve TCP-connection establishment (#221) - Handle case where the server doesn't provide the `bind` feature (#224) - Fix configure script for non-bash shells (#218) - Parse JID's according to RFC7622 (#219) - Fix potential memory leak in internal DNS resolver (#219) - Fix potential memory leaks in `xmpp_conn_set_cafile()` and `xmpp_conn_set_capath()` (#219) - Internal improvements (#219) 0.12.2 - Fix reconnect issues when Stream Management is enabled (#211) - Fix resolver ... this time for real hopefully (fixup of #200) (#214) - Fix clearing of password cache on resumed connection (#214) - Improve detection&implementation of `va_copy` (#213) - Fix Valgrind CI builds against LibreSSL (#212) - Fix perf example on platforms where an `rdtsc()` equivalent isn't implemented (#212) 0.12.1 - Fix compilation in buildroot (#207) - Fixes regarding OpenSSL (#208) - Fix some build steps when builddir != srcdir (#208) - Allow the user to disable build of examples (#209) - CI builds against OpenSSL 3 (#206) - Change the call signature of the following API (#208): - xmpp_conn_set_client_cert() - the PKCS#12 file has now to be passed via the `cert` parameter. Originally it was via `key`. Currently both styles are supported, but in a future release only passing via `cert` will be accepted. 0.12.0 - Fix potential infinite loop in resolver (#200) - Prevent potential memory leak in `xmpp_stanza_new_from_string()` (#205) - Do proper SO versioning - Add code coverage support (#188) - Add support for password-protected TLS key & PKCS#12/PFX files (#195, #205) - Stream-Management support - XEP-0198 (#184) - New API: - xmpp_conn_send_queue_len() - xmpp_conn_send_queue_drop_element() - xmpp_conn_get_sm_state() - xmpp_conn_set_sm_state() - xmpp_free_sm_state() - xmpp_conn_get_keyfile() - xmpp_conn_set_password_callback() - xmpp_conn_set_password_retries() - xmpp_stanza_get_child_by_path() - xmpp_conn_set_sockopt_callback() - xmpp_sockopt_cb_keepalive() - The following APIs were public in the shared library, but not in `strophe.h`. Now they are officially public API: - xmpp_rand_new() - xmpp_rand_free() - xmpp_rand() - xmpp_rand_bytes() - xmpp_rand_nonce() - xmpp_rand_bytes() - The following APIs were public in the shared library, but not in `strophe.h`. In a future version of the library they will be private without replacement: - xmpp_alloc() - xmpp_realloc() - xmpp_strdup() - xmpp_strndup() - xmpp_strtok_r() - xmpp_snprintf() - xmpp_vsnprintf() - xmpp_log() - xmpp_error() - xmpp_warn() - xmpp_info() - xmpp_debug() - xmpp_debug_verbose() - Deprecated the following API: - xmpp_conn_set_keepalive() - replaced by xmpp_conn_set_sockopt_callback() 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