Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package libstrophe for openSUSE:Factory 
checked in at 2024-02-21 18:01:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libstrophe (Old)
 and      /work/SRC/openSUSE:Factory/.libstrophe.new.1706 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libstrophe"

Wed Feb 21 18:01:43 2024 rev:16 rq:1148735 version:0.13.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/libstrophe/libstrophe.changes    2024-02-01 
18:06:06.632660573 +0100
+++ /work/SRC/openSUSE:Factory/.libstrophe.new.1706/libstrophe.changes  
2024-02-21 18:01:50.727088184 +0100
@@ -1,0 +2,10 @@
+Wed Feb 21 14:13:16 UTC 2024 - Michael Vetter <[email protected]>
+
+- Update to 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)
+
+-------------------------------------------------------------------

Old:
----
  libstrophe-0.13.0.tar.xz

New:
----
  libstrophe-0.13.1.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libstrophe.spec ++++++
--- /var/tmp/diff_new_pack.pd5C5g/_old  2024-02-21 18:01:51.251107167 +0100
+++ /var/tmp/diff_new_pack.pd5C5g/_new  2024-02-21 18:01:51.251107167 +0100
@@ -18,7 +18,7 @@
 
 %define c_lib   libstrophe0
 Name:           libstrophe
-Version:        0.13.0
+Version:        0.13.1
 Release:        0
 Summary:        A XMPP library for C
 License:        GPL-3.0-or-later OR MIT

++++++ libstrophe-0.13.0.tar.xz -> libstrophe-0.13.1.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstrophe-0.13.0/ChangeLog 
new/libstrophe-0.13.1/ChangeLog
--- old/libstrophe-0.13.0/ChangeLog     2024-02-01 09:29:12.000000000 +0100
+++ new/libstrophe-0.13.1/ChangeLog     2024-02-21 13:47:55.000000000 +0100
@@ -1,3 +1,9 @@
+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)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstrophe-0.13.0/README new/libstrophe-0.13.1/README
--- old/libstrophe-0.13.0/README        2023-11-01 01:41:06.000000000 +0100
+++ new/libstrophe-0.13.1/README        2024-02-13 14:51:04.000000000 +0100
@@ -88,7 +88,7 @@
 
 Then open `docs/html/index.html`.
 
-An online version of the documentation of the latest release is available on 
http://strophe.im/libstrophe/
+An online version of the documentation of the latest release is available on 
https://strophe.im/libstrophe/
 
 Releases
 --------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstrophe-0.13.0/configure 
new/libstrophe-0.13.1/configure
--- old/libstrophe-0.13.0/configure     2024-02-01 09:30:04.000000000 +0100
+++ new/libstrophe-0.13.1/configure     2024-02-21 13:48:09.000000000 +0100
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for libstrophe 0.13.0.
+# Generated by GNU Autoconf 2.71 for libstrophe 0.13.1.
 #
 # Report bugs to <[email protected]>.
 #
@@ -621,8 +621,8 @@
 # Identity of this package.
 PACKAGE_NAME='libstrophe'
 PACKAGE_TARNAME='libstrophe'
-PACKAGE_VERSION='0.13.0'
-PACKAGE_STRING='libstrophe 0.13.0'
+PACKAGE_VERSION='0.13.1'
+PACKAGE_STRING='libstrophe 0.13.1'
 PACKAGE_BUGREPORT='[email protected]'
 PACKAGE_URL=''
 
@@ -1445,7 +1445,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures libstrophe 0.13.0 to adapt to many kinds of systems.
+\`configure' configures libstrophe 0.13.1 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1516,7 +1516,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of libstrophe 0.13.0:";;
+     short | recursive ) echo "Configuration of libstrophe 0.13.1:";;
    esac
   cat <<\_ACEOF
 
@@ -1672,7 +1672,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-libstrophe configure 0.13.0
+libstrophe configure 0.13.1
 generated by GNU Autoconf 2.71
 
 Copyright (C) 2021 Free Software Foundation, Inc.
@@ -1890,7 +1890,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by libstrophe $as_me 0.13.0, which was
+It was created by libstrophe $as_me 0.13.1, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   $ $0$ac_configure_args_raw
@@ -3160,7 +3160,7 @@
 
 # Define the identity of the package.
  PACKAGE='libstrophe'
- VERSION='0.13.0'
+ VERSION='0.13.1'
 
 
 printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -15259,7 +15259,7 @@
 PC_CFLAGS="${PC_CFLAGS} -DLIBXMPP_VERSION_MAJOR=${VMAJ} 
-DLIBXMPP_VERSION_MINOR=${VMIN}"
 
 # set the SO version of the installed library
-VERSION_INFO="13:0:13"
+VERSION_INFO="13:1:13"
 
 
 PC_REQUIRES=${PC_REQUIRES}
@@ -15890,7 +15890,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by libstrophe $as_me 0.13.0, which was
+This file was extended by libstrophe $as_me 0.13.1, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -15949,7 +15949,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config='$ac_cs_config_escaped'
 ac_cs_version="\\
-libstrophe config.status 0.13.0
+libstrophe config.status 0.13.1
 configured by $0, generated by GNU Autoconf 2.71,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstrophe-0.13.0/configure.ac 
new/libstrophe-0.13.1/configure.ac
--- old/libstrophe-0.13.0/configure.ac  2024-02-01 00:06:54.000000000 +0100
+++ new/libstrophe-0.13.1/configure.ac  2024-02-21 13:47:55.000000000 +0100
@@ -1,6 +1,6 @@
 m4_define([v_maj], [0])
 m4_define([v_min], [13])
-m4_define([v_patch], [0])
+m4_define([v_patch], [1])
 m4_define([project_version], [v_maj.v_min.v_patch])
 
 m4_define([lt_cur], m4_eval(v_maj + v_min))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstrophe-0.13.0/libstrophe.pc.in 
new/libstrophe-0.13.1/libstrophe.pc.in
--- old/libstrophe-0.13.0/libstrophe.pc.in      2021-03-01 15:05:13.000000000 
+0100
+++ new/libstrophe-0.13.1/libstrophe.pc.in      2024-02-13 14:51:04.000000000 
+0100
@@ -5,7 +5,7 @@
 
 Name: libstrophe
 Description: A simple, lightweight C library for writing XMPP clients
-URL: http://strophe.im/libstrophe/
+URL: https://strophe.im/libstrophe/
 Version: @VERSION@
 Requires:
 Requires.private: @PC_REQUIRES@
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstrophe-0.13.0/src/auth.c 
new/libstrophe-0.13.1/src/auth.c
--- old/libstrophe-0.13.0/src/auth.c    2024-01-31 23:57:32.000000000 +0100
+++ new/libstrophe-0.13.1/src/auth.c    2024-02-21 13:38:52.000000000 +0100
@@ -1095,21 +1095,19 @@
 static int
 _handle_features_sasl(xmpp_conn_t *conn, xmpp_stanza_t *stanza, void *userdata)
 {
-    xmpp_stanza_t *bind, *session, *opt;
+    xmpp_stanza_t *bind, *session;
     xmpp_stanza_t *resume;
-    const char *ns;
     char h[11];
 
     UNUSED(userdata);
 
-    /* remove missing features handler */
+    /* Remove missing features handler */
     xmpp_timed_handler_delete(conn, _handle_missing_features_sasl);
 
-    /* check whether resource binding is required */
-    bind = xmpp_stanza_get_child_by_name(stanza, "bind");
+    /* Check whether resource binding is required */
+    bind = xmpp_stanza_get_child_by_name_and_ns(stanza, "bind", XMPP_NS_BIND);
     if (bind) {
-        ns = xmpp_stanza_get_ns(bind);
-        conn->bind_required = ns != NULL && strcmp(ns, XMPP_NS_BIND) == 0;
+        conn->bind_required = 1;
         bind = xmpp_stanza_copy(bind);
         if (!bind) {
             disconnect_mem_error(conn);
@@ -1119,25 +1117,31 @@
         conn->bind_required = 0;
     }
 
-    /* check whether session establishment is required */
-    session = xmpp_stanza_get_child_by_name(stanza, "session");
+    /* Check whether session establishment is required.
+     *
+     * The mechanism is deprecated, but we still support it.
+     *
+     * RFC3921 contains Ch. 3 "Session Establishment".
+     *
+     * RFC6121 removes this and explains in Ch. 1.4:
+     * "Interoperability Note: [...] Implementation and deployment experience
+     * has shown that this additional step is unnecessary. [...]" */
+    session = xmpp_stanza_get_child_by_name_and_ns(stanza, "session",
+                                                   XMPP_NS_SESSION);
     if (session) {
-        ns = xmpp_stanza_get_ns(session);
-        opt = xmpp_stanza_get_child_by_name(session, "optional");
-        if (!opt)
-            conn->session_required =
-                ns != NULL && strcmp(ns, XMPP_NS_SESSION) == 0;
+        conn->session_required =
+            xmpp_stanza_get_child_by_name(session, "optional") == NULL;
     }
 
+    /* Check stream-management support */
     if (xmpp_stanza_get_child_by_name_and_ns(stanza, "sm", XMPP_NS_SM)) {
-        /* stream management supported */
         conn->sm_state->sm_support = 1;
     }
 
-    /* we are expecting either <bind/> and <session/> since this is a
+    /* We are expecting either <bind/> and optionally <session/> since this is 
a
        XMPP style connection or we <resume/> the previous session */
 
-    /* check whether we can <resume/> the previous session */
+    /* Check whether we can <resume/> the previous session */
     if (!conn->sm_disable && conn->sm_state->can_resume &&
         conn->sm_state->previd && conn->sm_state->bound_jid) {
         resume = xmpp_stanza_new(conn->ctx);
@@ -1184,11 +1188,57 @@
     return 0;
 }
 
+static void _session_start(xmpp_conn_t *conn)
+{
+    xmpp_stanza_t *session;
+    xmpp_stanza_t *iq = xmpp_iq_new(conn->ctx, "set", "_xmpp_session1");
+    if (!iq) {
+        disconnect_mem_error(conn);
+        return;
+    }
+
+    session = xmpp_stanza_new(conn->ctx);
+    if (!session) {
+        xmpp_stanza_release(iq);
+        disconnect_mem_error(conn);
+        return;
+    }
+
+    /* setup response handlers */
+    handler_add_id(conn, _handle_session, "_xmpp_session1", NULL);
+    handler_add_timed(conn, _handle_missing_session, SESSION_TIMEOUT, NULL);
+
+    xmpp_stanza_set_name(session, "session");
+    xmpp_stanza_set_ns(session, XMPP_NS_SESSION);
+
+    xmpp_stanza_add_child_ex(iq, session, 0);
+
+    /* send session establishment request */
+    send_stanza(conn, iq, XMPP_QUEUE_STROPHE);
+}
+
+static void _sm_enable(xmpp_conn_t *conn)
+{
+    xmpp_stanza_t *enable = xmpp_stanza_new(conn->ctx);
+    if (!enable) {
+        disconnect_mem_error(conn);
+        return;
+    }
+    xmpp_stanza_set_name(enable, "enable");
+    xmpp_stanza_set_ns(enable, XMPP_NS_SM);
+    if (!conn->sm_state->dont_request_resume)
+        xmpp_stanza_set_attribute(enable, "resume", "true");
+    handler_add(conn, _handle_sm, XMPP_NS_SM, NULL, NULL, NULL);
+    send_stanza(conn, enable, XMPP_QUEUE_SM_STROPHE);
+    conn->sm_state->sm_sent_nr = 0;
+    conn->sm_state->sm_enabled = 1;
+}
+
 static int
 _handle_bind(xmpp_conn_t *conn, xmpp_stanza_t *stanza, void *userdata)
 {
     const char *type;
-    xmpp_stanza_t *iq, *session, *binding, *jid_stanza, *enable = NULL;
+    xmpp_stanza_t *binding, *jid_stanza;
 
     UNUSED(userdata);
 
@@ -1211,58 +1261,19 @@
             }
         }
 
-        /* send enable directly after the bind request */
-        if (conn->sm_state->sm_support && !conn->sm_disable) {
-            enable = xmpp_stanza_new(conn->ctx);
-            if (!enable) {
-                disconnect_mem_error(conn);
-                return 0;
-            }
-            xmpp_stanza_set_name(enable, "enable");
-            xmpp_stanza_set_ns(enable, XMPP_NS_SM);
-            if (!conn->sm_state->dont_request_resume)
-                xmpp_stanza_set_attribute(enable, "resume", "true");
-            handler_add(conn, _handle_sm, XMPP_NS_SM, NULL, NULL, NULL);
-            send_stanza(conn, enable, XMPP_QUEUE_SM_STROPHE);
-            conn->sm_state->sm_sent_nr = 0;
-            conn->sm_state->sm_enabled = 1;
-        }
-
         /* establish a session if required */
         if (conn->session_required) {
-            /* setup response handlers */
-            handler_add_id(conn, _handle_session, "_xmpp_session1", NULL);
-            handler_add_timed(conn, _handle_missing_session, SESSION_TIMEOUT,
-                              NULL);
-
-            /* send session request */
-            iq = xmpp_iq_new(conn->ctx, "set", "_xmpp_session1");
-            if (!iq) {
-                disconnect_mem_error(conn);
-                return 0;
-            }
-
-            session = xmpp_stanza_new(conn->ctx);
-            if (!session) {
-                xmpp_stanza_release(iq);
-                disconnect_mem_error(conn);
-                return 0;
-            }
-
-            xmpp_stanza_set_name(session, "session");
-            xmpp_stanza_set_ns(session, XMPP_NS_SESSION);
-
-            xmpp_stanza_add_child_ex(iq, session, 0);
-
-            /* send session establishment request */
-            send_stanza(conn, iq, XMPP_QUEUE_STROPHE);
+            _session_start(conn);
+        }
+        /* send enable directly after the bind request */
+        else if (conn->sm_state->sm_support && !conn->sm_disable) {
+            _sm_enable(conn);
         }
-
         /* if there's no xmpp session required and we didn't try to enable
          * stream-management, we're done here and the stream-negotiation was
          * successful
          */
-        if (!conn->session_required && !enable) {
+        else {
             _stream_negotiation_success(conn);
         }
     } else {
@@ -1299,8 +1310,11 @@
         xmpp_disconnect(conn);
     } else if (type && strcmp(type, "result") == 0) {
         strophe_debug(conn->ctx, "xmpp", "Session establishment successful.");
-
-        _stream_negotiation_success(conn);
+        if (conn->sm_state->sm_support && !conn->sm_disable) {
+            _sm_enable(conn);
+        } else {
+            _stream_negotiation_success(conn);
+        }
     } else {
         strophe_error(conn->ctx, "xmpp",
                       "Server sent malformed session reply.");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstrophe-0.13.0/src/compression.c 
new/libstrophe-0.13.1/src/compression.c
--- old/libstrophe-0.13.0/src/compression.c     2024-01-31 23:57:32.000000000 
+0100
+++ new/libstrophe-0.13.1/src/compression.c     2024-02-13 14:51:04.000000000 
+0100
@@ -63,7 +63,7 @@
         break;
     default:
         strophe_error(comp->conn->ctx, "zlib", "inflate error %d", ret);
-        comp->conn->error = EBADFD;
+        comp->conn->error = ret;
         conn_disconnect(comp->conn);
         break;
     }
@@ -129,7 +129,7 @@
         }
         if (ret != Z_OK) {
             strophe_error(conn->ctx, "zlib", "deflate error %d", ret);
-            conn->error = EBADFD;
+            conn->error = ret;
             conn_disconnect(conn);
             return ret;
         }
@@ -227,22 +227,22 @@
 
     comp->compression.stream.next_out = comp->compression.buffer;
     comp->compression.stream.avail_out = STROPHE_COMPRESSION_BUFFER_SIZE;
-    int err = deflateInit(&comp->compression.stream, Z_DEFAULT_COMPRESSION);
-    if (err != Z_OK) {
+    int ret = deflateInit(&comp->compression.stream, Z_DEFAULT_COMPRESSION);
+    if (ret != Z_OK) {
         strophe_free_and_null(conn->ctx, comp->compression.buffer);
-        conn->error = EBADFD;
+        conn->error = ret;
         conn_disconnect(conn);
-        return err;
+        return ret;
     }
 
     _init_zlib_compression(conn->ctx, &comp->decompression);
 
-    err = inflateInit(&comp->decompression.stream);
-    if (err != Z_OK) {
+    ret = inflateInit(&comp->decompression.stream);
+    if (ret != Z_OK) {
         strophe_free_and_null(conn->ctx, comp->decompression.buffer);
-        conn->error = EBADFD;
+        conn->error = ret;
         conn_disconnect(conn);
-        return err;
+        return ret;
     }
     return 0;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstrophe-0.13.0/src/conn.c 
new/libstrophe-0.13.1/src/conn.c
--- old/libstrophe-0.13.0/src/conn.c    2024-01-31 23:57:32.000000000 +0100
+++ new/libstrophe-0.13.1/src/conn.c    2024-02-21 13:38:47.000000000 +0100
@@ -1147,14 +1147,14 @@
  *
  *  Supported flags are:
  *
- *    - XMPP_CONN_FLAG_DISABLE_TLS
- *    - XMPP_CONN_FLAG_MANDATORY_TLS
- *    - XMPP_CONN_FLAG_LEGACY_SSL
- *    - XMPP_CONN_FLAG_TRUST_TLS
- *    - XMPP_CONN_FLAG_LEGACY_AUTH
- *    - XMPP_CONN_FLAG_DISABLE_SM
- *    - XMPP_CONN_FLAG_ENABLE_COMPRESSION
- *    - XMPP_CONN_FLAG_COMPRESSION_DONT_RESET
+ *    - \ref XMPP_CONN_FLAG_DISABLE_TLS
+ *    - \ref XMPP_CONN_FLAG_MANDATORY_TLS
+ *    - \ref XMPP_CONN_FLAG_LEGACY_SSL
+ *    - \ref XMPP_CONN_FLAG_TRUST_TLS
+ *    - \ref XMPP_CONN_FLAG_LEGACY_AUTH
+ *    - \ref XMPP_CONN_FLAG_DISABLE_SM
+ *    - \ref XMPP_CONN_FLAG_ENABLE_COMPRESSION
+ *    - \ref XMPP_CONN_FLAG_COMPRESSION_DONT_RESET
  *
  *  @param conn a Strophe connection object
  *  @param flags ORed connection flags
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstrophe-0.13.0/src/sock.c 
new/libstrophe-0.13.1/src/sock.c
--- old/libstrophe-0.13.0/src/sock.c    2024-01-31 23:57:32.000000000 +0100
+++ new/libstrophe-0.13.1/src/sock.c    2024-02-21 12:30:15.000000000 +0100
@@ -207,7 +207,7 @@
 {
     struct addrinfo *ainfo;
     sock_t sock;
-    int rc = 0;
+    int rc;
     char buf[64];
 
     do {
@@ -228,6 +228,7 @@
 
         sock = socket(ainfo->ai_family, ainfo->ai_socktype, 
ainfo->ai_protocol);
         if (sock != INVALID_SOCKET) {
+            rc = 0;
             if (xsock->conn->sockopt_cb) {
                 /* Don't allow user to overwrite sockfd value. */
                 sock_t sock_copy = sock;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstrophe-0.13.0/src/tls_openssl.c 
new/libstrophe-0.13.1/src/tls_openssl.c
--- old/libstrophe-0.13.0/src/tls_openssl.c     2024-01-31 23:57:32.000000000 
+0100
+++ new/libstrophe-0.13.1/src/tls_openssl.c     2024-02-21 13:39:07.000000000 
+0100
@@ -750,8 +750,9 @@
 {
     const char *label = NULL;
     size_t labellen = 0;
+    int ssl_version = SSL_version(tls->ssl);
 
-    switch (SSL_version(tls->ssl)) {
+    switch (ssl_version) {
     case SSL3_VERSION:
         *binding_prefix = "tls-unique";
         *binding_prefix_len = strlen("tls-unique");
@@ -774,7 +775,7 @@
         break;
 #endif
     default:
-        strophe_error(tls->ctx, "tls", "Unsupported TLS Version: %s",
+        strophe_error(tls->ctx, "tls", "Unsupported TLS/SSL Version: %s",
                       SSL_get_version(tls->ssl));
         return -1;
     }
@@ -785,11 +786,28 @@
     if (!tls->channel_binding_data)
         return -1;
 
-    if (SSL_export_keying_material(tls->ssl, tls->channel_binding_data,
-                                   tls->channel_binding_size, label, labellen,
-                                   NULL, 0, 0) != 1) {
-        strophe_error(tls->ctx, "tls", "Could not get channel binding data");
-        return -1;
+    if (ssl_version <= TLS1_2_VERSION) {
+        size_t len;
+        if (SSL_session_reused(tls->ssl)) {
+            len = SSL_get_peer_finished(tls->ssl, tls->channel_binding_data,
+                                        tls->channel_binding_size);
+        } else {
+            len = SSL_get_finished(tls->ssl, tls->channel_binding_data,
+                                   tls->channel_binding_size);
+        }
+        if (len != tls->channel_binding_size) {
+            strophe_error(tls->ctx, "tls",
+                          "Got channel binding data of wrong size %zu", len);
+            return -1;
+        }
+    } else {
+        if (SSL_export_keying_material(tls->ssl, tls->channel_binding_data,
+                                       tls->channel_binding_size, label,
+                                       labellen, NULL, 0, 0) != 1) {
+            strophe_error(tls->ctx, "tls",
+                          "Could not get channel binding data");
+            return -1;
+        }
     }
     return 0;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstrophe-0.13.0/strophe.h 
new/libstrophe-0.13.1/strophe.h
--- old/libstrophe-0.13.0/strophe.h     2024-02-01 00:06:54.000000000 +0100
+++ new/libstrophe-0.13.1/strophe.h     2024-02-21 13:38:47.000000000 +0100
@@ -707,11 +707,18 @@
  */
 void xmpp_rand_nonce(xmpp_rand_t *rand, char *output, size_t len);
 
-/**
+/*
  * Formerly "private but exported" functions made public for now to announce
  * deprecation */
 #include <stdarg.h>
 
+/**
+ * XMPP_DEPRECATED(x) macro to show a compiler warning for deprecated API
+ * functions
+ *
+ * @param x The function that can be used as a replacement or 'internal' if
+ * there is no replacement
+ */
 #if defined(__GNUC__)
 #if (__GNUC__ * 100 + __GNUC_MINOR__ >= 405)
 #define XMPP_DEPRECATED(x) __attribute__((deprecated("replaced by " #x)))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstrophe-0.13.0/tests/test_stanza.c 
new/libstrophe-0.13.1/tests/test_stanza.c
--- old/libstrophe-0.13.0/tests/test_stanza.c   2023-11-01 01:41:06.000000000 
+0100
+++ new/libstrophe-0.13.1/tests/test_stanza.c   2024-02-13 14:51:04.000000000 
+0100
@@ -175,7 +175,7 @@
         xmpp_stanza_reply_error(stanza, "cancel", "service-unavailable", NULL);
     assert(error != NULL);
     mood = xmpp_stanza_new_from_string(ctx, str_mood);
-    assert(stanza != NULL);
+    assert(mood != NULL);
 
     assert(xmpp_stanza_get_to(error) != NULL);
     COMPARE("[email protected]/home", xmpp_stanza_get_to(error));

Reply via email to