head 1.2; access; symbols pkgsrc-2025Q3:1.1.0.6 pkgsrc-2025Q3-base:1.1 pkgsrc-2025Q2:1.1.0.4 pkgsrc-2025Q2-base:1.1 pkgsrc-2025Q1:1.1.0.2 pkgsrc-2025Q1-base:1.1; locks; strict; comment @// @; 1.2 date 2025.09.30.06.49.37; author adam; state dead; branches; next 1.1; commitid Z4ngQRNvuPyUMHcG; 1.1 date 2025.01.31.16.20.06; author wiz; state Exp; branches; next ; commitid wvpkpXWhV6NVIEHF; desc @@ 1.2 log @snapcast: updated to 0.33.0 0.33.0 Features Server: Add PipeWire stream reader Client: Add PipeWire player Server: process stream sources can be added via RPC Server: mDNS can be disabled Server: Audio streaming over plain TCP (port 1704) can be disabled Server: Add control script for go-librespot Bugfixes Client: Fix case of command line arguments Client: Fix deadlock during shutdown Fix building with boost v1.89.0 Fix MacOS CI General Server: Log warning if default config is missing Server: Make SSL support optional (-DBUILD_WITH_SSL) Make ALSA optional Enable OpenSSL support for Android builds in CMakeLists.txt Update Readme Build Trixie packages for amd64 tcp section in snapserver.conf renamed to tcp-control TCP streaming settings moved from stream to tcp-streaming @ text @$NetBSD: patch-client_client__connection.cpp,v 1.1 2025/01/31 16:20:06 wiz Exp $ Fix build with boost 1.87. Using current upstream code. --- client/client_connection.cpp.orig 2025-01-31 16:06:01.103330476 +0000 +++ client/client_connection.cpp @@@@ -60,10 +60,9 @@@@ std::string ClientConnection::getMacAddr void ClientConnection::connect(const ResultHandler& handler) { - tcp::resolver::query query(server_.host, cpt::to_string(server_.port), boost::asio::ip::resolver_query_base::numeric_service); boost::system::error_code ec; LOG(INFO, LOG_TAG) << "Resolving host IP for: " << server_.host << "\n"; - auto iterator = resolver_.resolve(query, ec); + auto iterator = resolver_.resolve(server_.host, cpt::to_string(server_.port), boost::asio::ip::resolver_query_base::numeric_service, ec); if (ec) { LOG(ERROR, LOG_TAG) << "Failed to resolve host '" << server_.host << "', error: " << ec.message() << "\n"; @@@@ -71,15 +70,25 @@@@ void ClientConnection::connect(const Res return; } - LOG(INFO, LOG_TAG) << "Connecting\n"; - socket_.connect(*iterator, ec); - if (ec) + for (const auto& iter : iterator) + LOG(DEBUG, LOG_TAG) << "Resolved IP: " << iter.endpoint().address().to_string() << "\n"; + + for (const auto& iter : iterator) { - LOG(ERROR, LOG_TAG) << "Failed to connect to host '" << server_.host << "', error: " << ec.message() << "\n"; - handler(ec); - return; + LOG(INFO, LOG_TAG) << "Connecting to " << iter.endpoint() << "\n"; + socket_.connect(iter, ec); + if (!ec || (ec == boost::system::errc::interrupted)) + { + // We were successful or interrupted, e.g. by sig int + break; + } } - LOG(NOTICE, LOG_TAG) << "Connected to " << socket_.remote_endpoint().address().to_string() << endl; + + if (ec) + LOG(ERROR, LOG_TAG) << "Failed to connect to host '" << server_.host << "', error: " << ec.message() << "\n"; + else + LOG(NOTICE, LOG_TAG) << "Connected to " << socket_.remote_endpoint().address().to_string() << endl; + handler(ec); #if 0 @ 1.1 log @snapcast: fix build with boost 1.87 Convert to cmake/build.mk while here. @ text @d1 1 a1 1 $NetBSD$ @