Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package liblo for openSUSE:Factory checked 
in at 2026-06-22 17:38:54
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/liblo (Old)
 and      /work/SRC/openSUSE:Factory/.liblo.new.1956 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "liblo"

Mon Jun 22 17:38:54 2026 rev:28 rq:1361017 version:0.36

Changes:
--------
--- /work/SRC/openSUSE:Factory/liblo/liblo.changes      2026-05-04 
12:57:19.054864587 +0200
+++ /work/SRC/openSUSE:Factory/.liblo.new.1956/liblo.changes    2026-06-22 
17:38:58.641812506 +0200
@@ -1,0 +2,6 @@
+Sat Jun 20 08:30:23 UTC 2026 - Martin Hauke <[email protected]>
+
+- Update to version 0.36
+  * Fixed handling of connection closure for multiple TCP servers.
+
+-------------------------------------------------------------------

Old:
----
  liblo-0.35.tar.gz

New:
----
  liblo-0.36.tar.gz

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

Other differences:
------------------
++++++ liblo.spec ++++++
--- /var/tmp/diff_new_pack.8amNQb/_old  2026-06-22 17:38:59.461841182 +0200
+++ /var/tmp/diff_new_pack.8amNQb/_new  2026-06-22 17:38:59.461841182 +0200
@@ -19,7 +19,7 @@
 
 %define lname  liblo7
 Name:           liblo
-Version:        0.35
+Version:        0.36
 Release:        0
 Summary:        Open Sound Control implementation
 License:        LGPL-2.1-or-later

++++++ liblo-0.35.tar.gz -> liblo-0.36.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/liblo-0.35/ChangeLog new/liblo-0.36/ChangeLog
--- old/liblo-0.35/ChangeLog    2026-04-30 22:30:53.000000000 +0200
+++ new/liblo-0.36/ChangeLog    2026-06-19 20:08:10.000000000 +0200
@@ -1,3 +1,6 @@
+2026-06-19 Stephen Sinclair <[email protected]>
+       * Fixed handling of connection closure for multiple TCP servers.
+
 2026-04-30 Stephen Sinclair <[email protected]>
        * Added Message::clear()
        * Added lo_bundle_clear() and lo_bundle_set_timestamp()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/liblo-0.35/NEWS new/liblo-0.36/NEWS
--- old/liblo-0.35/NEWS 2026-04-30 22:30:53.000000000 +0200
+++ new/liblo-0.36/NEWS 2026-06-19 20:08:10.000000000 +0200
@@ -1,4 +1,15 @@
 --------------------------------------------
+2026-04-30: Release 0.36
+--------------------------------------------
+
+This is a bug fix release.
+
+Changes of note since the 0.35 release:
+
+- Fixed handling of connection closure for multiple TCP servers.
+
+
+--------------------------------------------
 2026-04-30: Release 0.35
 --------------------------------------------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/liblo-0.35/configure new/liblo-0.36/configure
--- old/liblo-0.35/configure    2026-04-30 22:31:13.000000000 +0200
+++ new/liblo-0.36/configure    2026-06-19 20:08:25.000000000 +0200
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for liblo 0.35.
+# Generated by GNU Autoconf 2.71 for liblo 0.36.
 #
 # Report bugs to <[email protected]>.
 #
@@ -621,8 +621,8 @@
 # Identity of this package.
 PACKAGE_NAME='liblo'
 PACKAGE_TARNAME='liblo'
-PACKAGE_VERSION='0.35'
-PACKAGE_STRING='liblo 0.35'
+PACKAGE_VERSION='0.36'
+PACKAGE_STRING='liblo 0.36'
 PACKAGE_BUGREPORT='[email protected]'
 PACKAGE_URL=''
 
@@ -1405,7 +1405,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 liblo 0.35 to adapt to many kinds of systems.
+\`configure' configures liblo 0.36 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1476,7 +1476,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of liblo 0.35:";;
+     short | recursive ) echo "Configuration of liblo 0.36:";;
    esac
   cat <<\_ACEOF
 
@@ -1602,7 +1602,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-liblo configure 0.35
+liblo configure 0.36
 generated by GNU Autoconf 2.71
 
 Copyright (C) 2021 Free Software Foundation, Inc.
@@ -2044,7 +2044,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by liblo $as_me 0.35, which was
+It was created by liblo $as_me 0.36, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   $ $0$ac_configure_args_raw
@@ -3555,7 +3555,7 @@
 
 # Define the identity of the package.
  PACKAGE='liblo'
- VERSION='0.35'
+ VERSION='0.36'
 
 
 printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -3788,7 +3788,7 @@
 
 
 
-LO_SO_VERSION=14:0:7
+LO_SO_VERSION=14:1:7
 
 LT_CURRENT_MINUS_AGE=7
 
@@ -3796,7 +3796,7 @@
 
 
 
-printf "%s\n" "#define LO_SO_VERSION {14, 0, 7}" >>confdefs.h
+printf "%s\n" "#define LO_SO_VERSION {14, 1, 7}" >>confdefs.h
 
 
 # disable support for ipv6.
@@ -19179,7 +19179,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by liblo $as_me 0.35, which was
+This file was extended by liblo $as_me 0.36, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -19247,7 +19247,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config='$ac_cs_config_escaped'
 ac_cs_version="\\
-liblo config.status 0.35
+liblo config.status 0.36
 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/liblo-0.35/configure.ac new/liblo-0.36/configure.ac
--- old/liblo-0.35/configure.ac 2026-04-30 22:30:53.000000000 +0200
+++ new/liblo-0.36/configure.ac 2026-06-19 20:08:10.000000000 +0200
@@ -1,6 +1,6 @@
 AC_PREREQ([2.69])
 
-AC_INIT([liblo],[0.35],[[email protected]])
+AC_INIT([liblo],[0.36],[[email protected]])
 
 # libtool version: current:revision:age
 #
@@ -16,7 +16,7 @@
 # If any interfaces have been removed since the last public release, then set
 # age to 0.
 m4_define([lt_current], 14)
-m4_define([lt_revision], 0)
+m4_define([lt_revision], 1)
 m4_define([lt_age], 7)
 
 m4_define([lt_version_info], [lt_current:lt_revision:lt_age])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/liblo-0.35/libtool new/liblo-0.36/libtool
--- old/liblo-0.35/libtool      2026-04-30 22:31:17.000000000 +0200
+++ new/liblo-0.36/libtool      2026-06-19 20:08:38.000000000 +0200
@@ -1,5 +1,5 @@
 #! /bin/bash
-# Generated automatically by config.status (liblo) 0.35
+# Generated automatically by config.status (liblo) 0.36
 # NOTE: Changes made to this file will be lost: look at ltmain.sh.
 
 # Provide generalized library-building support services.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/liblo-0.35/src/server.c new/liblo-0.36/src/server.c
--- old/liblo-0.35/src/server.c 2026-04-30 22:30:53.000000000 +0200
+++ new/liblo-0.36/src/server.c 2026-06-19 20:08:10.000000000 +0200
@@ -1405,7 +1405,7 @@
     for (j = 0, k = 0; j < num_servers; j++) {
         for (i = 0; i < s[j]->sockets_len; i++) {
             sockets[k].fd = s[j]->sockets[i].fd;
-            sockets[k].events = POLLIN | POLLPRI | POLLERR | POLLHUP;
+            sockets[k].events = POLLIN | POLLPRI | POLLERR | POLLHUP | 
POLLNVAL;
             sockets[k].revents = s[j]->sockets[i].revents = 0;
             ++k;
         }
@@ -1421,6 +1421,10 @@
     else if (res) {
         for (j = 0, k = 0; j < num_servers; j++) {
             if (s[j]->protocol == LO_TCP) {
+                // Keep length of sockets array for this server since we 
modify it below,
+                // as it is needed for moving to the next server.
+                int sockets_len = s[j]->sockets_len;
+
                 if (sockets[k].revents & (POLLIN | POLLPRI)) {
                     // If poll() was reporting a new connection on the 
listening
                     // socket rather than a ready message, accept it and check 
again.
@@ -1453,24 +1457,39 @@
                  * deleting a socket, since deleting sockets doesn't affect the
                  * order of the array to the left of the index. */
 
-                for (i = s[j]->sockets_len - 1, k += i; i > 0; i--, k--) {
+                for (i = sockets_len - 1, k += i; i > 0; i--, k--) {
                     if (!sockets[k].revents)
                         continue;
-                    if (sockets[k].revents & (POLLERR | POLLHUP)) {
+                    if (sockets[k].revents & (POLLERR | POLLHUP | POLLNVAL)) {
                         closesocket(sockets[k].fd);
                         lo_server_del_socket(s[j], i, sockets[k].fd);
                     }
-                    else {
+                    else if (sockets[k].revents & (POLLIN | POLLPRI)) {
                         s[j]->sockets[i].revents = POLLIN;
                         recvd[j] = 1;
                     }
                 }
-                k += s[j]->sockets_len;
+                k += sockets_len;
             }
             else {
-                if (sockets[k].revents) {
-                    s[j]->sockets[0].revents = POLLIN;
-                    recvd[j] = 1;
+                if (sockets[k].revents & (POLLNVAL | POLLHUP)) {
+                    // Fatal error
+                    if (sockets[k].fd != -1) {
+                        closesocket(sockets[k].fd);
+                    }
+                    s[j]->sockets[0].fd = -1;
+                }
+                else {
+                    if (sockets[k].revents & POLLERR) {
+                        // Clear the error by reading SO_ERROR
+                        int err = 0;
+                        socklen_t errlen = sizeof(err);
+                        getsockopt(sockets[k].fd, SOL_SOCKET, SO_ERROR, 
(char*)&err, &errlen);
+                    }
+                    if (sockets[k].revents & (POLLIN | POLLPRI)) {
+                        s[j]->sockets[0].revents = POLLIN;
+                        recvd[j] = 1;
+                    }
                 }
                 ++k;
             }

Reply via email to