Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package soapy-remote for openSUSE:Factory 
checked in at 2021-03-24 16:16:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/soapy-remote (Old)
 and      /work/SRC/openSUSE:Factory/.soapy-remote.new.2401 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "soapy-remote"

Wed Mar 24 16:16:49 2021 rev:5 rq:881013 version:0.5.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/soapy-remote/soapy-remote.changes        
2019-01-28 20:50:37.269767475 +0100
+++ /work/SRC/openSUSE:Factory/.soapy-remote.new.2401/soapy-remote.changes      
2021-03-24 16:17:54.180250703 +0100
@@ -1,0 +2,10 @@
+Tue Feb 23 19:11:36 UTC 2021 - Wojciech Kazubski <w...@ire.pw.edu.pl>
+
+- Update to version 0.5.2
+  * Support more than 31 clients in SSDP endpoint
+  * Handle cases where avahi client is null
+  * Handle EINTR case for SSDP server select
+  * Fix the scale in CS12 - CF32 conversion
+  * Protect getServerURLs from re-entrant calls
+
+-------------------------------------------------------------------

Old:
----
  soapy-remote-0.5.1.tar.gz

New:
----
  soapy-remote-0.5.2.tar.gz

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

Other differences:
------------------
++++++ soapy-remote.spec ++++++
--- /var/tmp/diff_new_pack.ivcCTT/_old  2021-03-24 16:17:54.660251207 +0100
+++ /var/tmp/diff_new_pack.ivcCTT/_new  2021-03-24 16:17:54.664251212 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package soapy-remote
 #
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2021 SUSE LLC.
 # Copyright (c) 2017, Martin Hauke <mar...@gmx.de>
 #
 # All modifications and additions to the file contributed by third parties
@@ -21,7 +21,7 @@
 %define soapy_modname soapysdr%{soapy_modver}-module-remote
 
 Name:           soapy-remote
-Version:        0.5.1
+Version:        0.5.2
 Release:        0
 Summary:        Remote device support for Soapy SDR
 License:        BSL-1.0

++++++ soapy-remote-0.5.1.tar.gz -> soapy-remote-0.5.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/SoapyRemote-soapy-remote-0.5.1/Changelog.txt 
new/SoapyRemote-soapy-remote-0.5.2/Changelog.txt
--- old/SoapyRemote-soapy-remote-0.5.1/Changelog.txt    2019-01-26 
19:21:42.000000000 +0100
+++ new/SoapyRemote-soapy-remote-0.5.2/Changelog.txt    2020-07-20 
22:03:41.000000000 +0200
@@ -1,3 +1,12 @@
+Release 0.5.2 (2020-07-20)
+==========================
+
+- Support more than 31 clients in SSDP endpoint
+- Handle cases where avahi client is null
+- Handle EINTR case for SSDP server select
+- Fix the scale in CS12 - CF32 conversion
+- Protect getServerURLs from re-entrant calls
+
 Release 0.5.1 (2019-01-26)
 ==========================
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/SoapyRemote-soapy-remote-0.5.1/client/ClientStreamData.cpp 
new/SoapyRemote-soapy-remote-0.5.2/client/ClientStreamData.cpp
--- old/SoapyRemote-soapy-remote-0.5.1/client/ClientStreamData.cpp      
2019-01-26 19:21:42.000000000 +0100
+++ new/SoapyRemote-soapy-remote-0.5.2/client/ClientStreamData.cpp      
2020-07-20 22:03:41.000000000 +0200
@@ -60,7 +60,8 @@
     case CONVERT_CF32_CS12:
     ///////////////////////////
     {
-        const float scale = float(1.0/scaleFactor);
+        // note that we correct the scale for the CS16 intermediate step
+        const float scale = float(1.0/16.0/scaleFactor);
         for (size_t i = 0; i < recvBuffs.size(); i++)
         {
             auto in = (uint8_t *)recvBuffs[i];
@@ -193,7 +194,8 @@
     case CONVERT_CF32_CS12:
     ///////////////////////////
     {
-        const float scale = float(scaleFactor);
+        // note that we correct the scale for the CS16 intermediate step
+        const float scale = float(16.0*scaleFactor);
         for (size_t i = 0; i < sendBuffs.size(); i++)
         {
             auto in = (float *)buffs[i];
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/SoapyRemote-soapy-remote-0.5.1/client/DiscoverServers.cpp 
new/SoapyRemote-soapy-remote-0.5.2/client/DiscoverServers.cpp
--- old/SoapyRemote-soapy-remote-0.5.1/client/DiscoverServers.cpp       
2019-01-26 19:21:42.000000000 +0100
+++ new/SoapyRemote-soapy-remote-0.5.2/client/DiscoverServers.cpp       
2020-07-20 22:03:41.000000000 +0200
@@ -1,4 +1,4 @@
-// Copyright (c) 2018-2018 Josh Blum
+// Copyright (c) 2018-2020 Josh Blum
 // SPDX-License-Identifier: BSL-1.0
 
 #include "SoapyClient.hpp"
@@ -7,10 +7,14 @@
 #include "SoapyRemoteDefs.hpp"
 #include <memory>
 #include <future>
+#include <mutex>
 #include <set>
 
 std::vector<std::string> SoapyRemoteDevice::getServerURLs(const int ipVer, 
const long timeoutUs)
 {
+    static std::mutex mutex;
+    std::lock_guard<std::mutex> lock(mutex);
+
     //connect to DNS-SD daemon and maintain a global connection
     //logic will reconnect if the status has failed for some reason
     static std::unique_ptr<SoapyMDNSEndpoint> mdnsEndpoint(new 
SoapyMDNSEndpoint());
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/SoapyRemote-soapy-remote-0.5.1/client/Streaming.cpp 
new/SoapyRemote-soapy-remote-0.5.2/client/Streaming.cpp
--- old/SoapyRemote-soapy-remote-0.5.1/client/Streaming.cpp     2019-01-26 
19:21:42.000000000 +0100
+++ new/SoapyRemote-soapy-remote-0.5.2/client/Streaming.cpp     2020-07-20 
22:03:41.000000000 +0200
@@ -188,7 +188,7 @@
     //use the native scale factor when the remote format is native,
     //otherwise the default scale factor is the max signed integer
     double scaleFactor = (remoteFormat == 
nativeFormat)?nativeScaleFactor:double(1 << 
((SoapySDR::formatToSize(remoteFormat)*4)-1));
-    const auto scaleFactorIt = args.find(SOAPY_REMOTE_KWARG_SCALAR);
+    const auto scaleFactorIt = args.find(SOAPY_REMOTE_KWARG_SCALE);
     if (scaleFactorIt != args.end()) scaleFactor = 
std::stod(scaleFactorIt->second);
 
     //determine reliable stream mode with tcp or datagram mode
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/SoapyRemote-soapy-remote-0.5.1/common/SoapyMDNSEndpointAvahi.cpp 
new/SoapyRemote-soapy-remote-0.5.2/common/SoapyMDNSEndpointAvahi.cpp
--- old/SoapyRemote-soapy-remote-0.5.1/common/SoapyMDNSEndpointAvahi.cpp        
2019-01-26 19:21:42.000000000 +0100
+++ new/SoapyRemote-soapy-remote-0.5.2/common/SoapyMDNSEndpointAvahi.cpp        
2020-07-20 22:03:41.000000000 +0200
@@ -171,6 +171,7 @@
 void SoapyMDNSEndpoint::printInfo(void)
 {
     //summary of avahi client connection for server logging
+    if (_impl->client == nullptr) return;
     SoapySDR::logf(SOAPY_SDR_INFO, "Avahi version:  %s", 
avahi_client_get_version_string(_impl->client));
     SoapySDR::logf(SOAPY_SDR_INFO, "Avahi hostname: %s", 
avahi_client_get_host_name(_impl->client));
     SoapySDR::logf(SOAPY_SDR_INFO, "Avahi domain:   %s", 
avahi_client_get_domain_name(_impl->client));
@@ -179,11 +180,13 @@
 
 bool SoapyMDNSEndpoint::status(void)
 {
+    if (_impl->client == nullptr) return false;
     return avahi_client_get_state(_impl->client) != AVAHI_CLIENT_FAILURE;
 }
 
 void SoapyMDNSEndpoint::registerService(const std::string &uuid, const 
std::string &service, const int ipVer)
 {
+    if (_impl->client == nullptr) return;
     auto &client = _impl->client;
     auto &group = _impl->group;
     group = avahi_entry_group_new(client, &groupCallback, this);
@@ -372,6 +375,8 @@
 
 std::map<std::string, std::map<int, std::string>> 
SoapyMDNSEndpoint::getServerURLs(const int ipVerReq, const long timeoutUs)
 {
+    if (_impl->client == nullptr) return {};
+
     const auto exitTime = std::chrono::high_resolution_clock::now() + 
std::chrono::microseconds(timeoutUs);
     std::lock_guard<std::recursive_mutex> l(_impl->mutex);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/SoapyRemote-soapy-remote-0.5.1/common/SoapyRPCSocket.cpp 
new/SoapyRemote-soapy-remote-0.5.2/common/SoapyRPCSocket.cpp
--- old/SoapyRemote-soapy-remote-0.5.1/common/SoapyRPCSocket.cpp        
2019-01-26 19:21:42.000000000 +0100
+++ new/SoapyRemote-soapy-remote-0.5.2/common/SoapyRPCSocket.cpp        
2020-07-20 22:03:41.000000000 +0200
@@ -1,4 +1,4 @@
-// Copyright (c) 2015-2019 Josh Blum
+// Copyright (c) 2015-2020 Josh Blum
 // SPDX-License-Identifier: BSL-1.0
 
 #include "SoapySocketDefs.hpp"
@@ -477,7 +477,7 @@
     return ret == 1;
 }
 
-int SoapyRPCSocket::selectRecvMultiple(const std::vector<SoapyRPCSocket *> 
&socks, const long timeoutUs)
+int SoapyRPCSocket::selectRecvMultiple(const std::vector<SoapyRPCSocket *> 
&socks, std::vector<bool> &ready, const long timeoutUs)
 {
     struct timeval tv;
     tv.tv_sec = timeoutUs / 1000000;
@@ -496,12 +496,13 @@
     int ret = ::select(maxSock+1, &readfds, NULL, NULL, &tv);
     if (ret == -1) return ret;
 
-    int mask = 0;
+    int count = 0;
     for (size_t i = 0; i < socks.size(); i++)
     {
-        if (FD_ISSET(socks[i]->_sock, &readfds)) mask |= (1 << i);
+        ready[i] = FD_ISSET(socks[i]->_sock, &readfds);
+        if (ready[i]) count++;
     }
-    return mask;
+    return count;
 }
 
 static std::string errToString(const int err)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/SoapyRemote-soapy-remote-0.5.1/common/SoapyRPCSocket.hpp 
new/SoapyRemote-soapy-remote-0.5.2/common/SoapyRPCSocket.hpp
--- old/SoapyRemote-soapy-remote-0.5.1/common/SoapyRPCSocket.hpp        
2019-01-26 19:21:42.000000000 +0100
+++ new/SoapyRemote-soapy-remote-0.5.2/common/SoapyRPCSocket.hpp        
2020-07-20 22:03:41.000000000 +0200
@@ -1,4 +1,4 @@
-// Copyright (c) 2015-2018 Josh Blum
+// Copyright (c) 2015-2020 Josh Blum
 // SPDX-License-Identifier: BSL-1.0
 
 #pragma once
@@ -133,9 +133,10 @@
 
     /*!
      * Wait for recv ready on multiple sockets.
-     * Return a mask of sockets that are ready or -1 for error
+     * Set the output ready vector to true for ready or false
+     * Return a count of sockets that are ready or -1 for error
      */
-    static int selectRecvMultiple(const std::vector<SoapyRPCSocket *> &socks, 
const long timeoutUs);
+    static int selectRecvMultiple(const std::vector<SoapyRPCSocket *> &socks, 
std::vector<bool> &ready, const long timeoutUs);
 
     /*!
      * Query the last error message as a string.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/SoapyRemote-soapy-remote-0.5.1/common/SoapyRemoteDefs.hpp 
new/SoapyRemote-soapy-remote-0.5.2/common/SoapyRemoteDefs.hpp
--- old/SoapyRemote-soapy-remote-0.5.1/common/SoapyRemoteDefs.hpp       
2019-01-26 19:21:42.000000000 +0100
+++ new/SoapyRemote-soapy-remote-0.5.2/common/SoapyRemoteDefs.hpp       
2020-07-20 22:03:41.000000000 +0200
@@ -17,8 +17,8 @@
 //! Stream args key to set the format on the remote server
 #define SOAPY_REMOTE_KWARG_FORMAT (SOAPY_REMOTE_KWARG_PREFIX "format")
 
-//! Stream args key to set the scalar for local float conversions
-#define SOAPY_REMOTE_KWARG_SCALAR (SOAPY_REMOTE_KWARG_PREFIX "scalar")
+//! Stream args key to set the scale for local float conversions
+#define SOAPY_REMOTE_KWARG_SCALE (SOAPY_REMOTE_KWARG_PREFIX "scale")
 
 //! Stream args key to set the buffer MTU bytes for network transfers
 #define SOAPY_REMOTE_KWARG_MTU (SOAPY_REMOTE_KWARG_PREFIX "mtu")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/SoapyRemote-soapy-remote-0.5.1/common/SoapySSDPEndpoint.cpp 
new/SoapyRemote-soapy-remote-0.5.2/common/SoapySSDPEndpoint.cpp
--- old/SoapyRemote-soapy-remote-0.5.1/common/SoapySSDPEndpoint.cpp     
2019-01-26 19:21:42.000000000 +0100
+++ new/SoapyRemote-soapy-remote-0.5.2/common/SoapySSDPEndpoint.cpp     
2020-07-20 22:03:41.000000000 +0200
@@ -1,4 +1,4 @@
-// Copyright (c) 2015-2018 Josh Blum
+// Copyright (c) 2015-2020 Josh Blum
 // SPDX-License-Identifier: BSL-1.0
 
 /*
@@ -22,6 +22,7 @@
 #include <mutex>
 #include <thread>
 #include <ctime>
+#include <cerrno>
 #include <chrono>
 #include <cctype>
 #include <map>
@@ -251,10 +252,12 @@
     //vector of sockets for select operation
     std::vector<SoapyRPCSocket *> socks;
     for (auto &data : _impl->handlers) socks.push_back(&data->sock);
+    std::vector<bool> ready(socks.size());
 
     while (not _impl->done)
     {
-        const int socksReady = SoapyRPCSocket::selectRecvMultiple(socks, 
SOAPY_REMOTE_SOCKET_TIMEOUT_US);
+        const int socksReady = SoapyRPCSocket::selectRecvMultiple(socks, 
ready, SOAPY_REMOTE_SOCKET_TIMEOUT_US);
+        if (socksReady == -1 and errno == EINTR) continue; //continue after 
interrupted system call
         if (socksReady < 0)
         {
             SoapySDR::logf(SOAPY_SDR_ERROR, 
"SoapySSDPEndpoint::selectRecvMultiple() = %d", socksReady);
@@ -266,7 +269,7 @@
 
         for (size_t i = 0; i < _impl->handlers.size(); i++)
         {
-            if ((socksReady & (1 << i)) == 0) continue;
+            if (not ready[i]) continue;
             auto data = _impl->handlers[i];
             auto &sock = data->sock;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/SoapyRemote-soapy-remote-0.5.1/debian/changelog 
new/SoapyRemote-soapy-remote-0.5.2/debian/changelog
--- old/SoapyRemote-soapy-remote-0.5.1/debian/changelog 2019-01-26 
19:21:42.000000000 +0100
+++ new/SoapyRemote-soapy-remote-0.5.2/debian/changelog 2020-07-20 
22:03:41.000000000 +0200
@@ -1,3 +1,9 @@
+soapyremote (0.5.2-1) unstable; urgency=low
+
+  * Release 0.5.2 (2020-07-20)
+
+ -- Josh Blum <j...@pothosware.com>  Mon, 20 Jul 2020 15:03:37 -0000
+
 soapyremote (0.5.1-1) unstable; urgency=low
 
   * Release 0.5.1 (2019-01-26)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/SoapyRemote-soapy-remote-0.5.1/debian/copyright 
new/SoapyRemote-soapy-remote-0.5.2/debian/copyright
--- old/SoapyRemote-soapy-remote-0.5.1/debian/copyright 2019-01-26 
19:21:42.000000000 +0100
+++ new/SoapyRemote-soapy-remote-0.5.2/debian/copyright 2020-07-20 
22:03:41.000000000 +0200
@@ -4,7 +4,7 @@
 
 Files: *
 Copyright:
-    Copyright (c) 2015-2019 Josh Blum <j...@pothosware.com>
+    Copyright (c) 2015-2020 Josh Blum <j...@pothosware.com>
     Copyright (c) 2016-2016 Bastille Networks
 License: BSL-1.0
  Boost Software License - Version 1.0 - August 17th, 2003
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/SoapyRemote-soapy-remote-0.5.1/debian/soapysdr-server.postinst 
new/SoapyRemote-soapy-remote-0.5.2/debian/soapysdr-server.postinst
--- old/SoapyRemote-soapy-remote-0.5.1/debian/soapysdr-server.postinst  
2019-01-26 19:21:42.000000000 +0100
+++ new/SoapyRemote-soapy-remote-0.5.2/debian/soapysdr-server.postinst  
2020-07-20 22:03:41.000000000 +0200
@@ -5,7 +5,7 @@
        #Load the new sysctl limits so they are immediately usable.
        #Otherwise, the limits will be always loaded at boot time.
        if [ -x "`which sysctl 2>/dev/null`" ]; then
-               sysctl --load /usr/lib/sysctl.d/SoapySDRServer.conf
+               sysctl --load /usr/lib/sysctl.d/SoapySDRServer.conf || true
        fi
 fi
 

Reply via email to