Skip to content

Commit f970ef6

Browse files
committed
snapcast: fix compilation with boost 1.87.0
After revisiting the PR, it didn't even compile because of commit c50de92 ("boost: Updates package to version 1.87.0"). Signed-off-by: Szabolcs Hubai <szab.hu@gmail.com>
1 parent 8cf7ce5 commit f970ef6

3 files changed

Lines changed: 173 additions & 0 deletions
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
From 6ada939adf5c4f7e43d0fbe6ea45492b9564cb8d Mon Sep 17 00:00:00 2001
2+
From: badaix <johannes.pohl@badaix.de>
3+
Date: Thu, 19 Dec 2024 22:53:49 +0100
4+
Subject: [PATCH] Fix compilation with boost v1.87.0
5+
6+
---
7+
server/control_server.cpp | 6 +++---
8+
1 file changed, 3 insertions(+), 3 deletions(-)
9+
10+
diff --git a/server/control_server.cpp b/server/control_server.cpp
11+
index 9d051e68..c60808c9 100644
12+
--- a/server/control_server.cpp
13+
+++ b/server/control_server.cpp
14+
@@ -161,7 +161,7 @@
15+
{
16+
LOG(INFO, LOG_TAG) << "Creating TCP acceptor for address: " << address << ", port: " << tcp_settings_.port << "\n";
17+
acceptor_tcp_.emplace_back(make_unique<tcp::acceptor>(boost::asio::make_strand(io_context_.get_executor()),
18+
- tcp::endpoint(boost::asio::ip::address::from_string(address), tcp_settings_.port)));
19+
+ tcp::endpoint(boost::asio::ip::make_address(address), settings_.tcp.port)));
20+
}
21+
catch (const boost::system::system_error& e)
22+
{
23+
@@ -177,7 +177,7 @@
24+
{
25+
LOG(INFO, LOG_TAG) << "Creating HTTP acceptor for address: " << address << ", port: " << http_settings_.port << "\n";
26+
acceptor_http_.emplace_back(make_unique<tcp::acceptor>(boost::asio::make_strand(io_context_.get_executor()),
27+
- tcp::endpoint(boost::asio::ip::address::from_string(address), http_settings_.port)));
28+
+ tcp::endpoint(boost::asio::ip::make_address(address), settings_.http.port)));
29+
}
30+
catch (const boost::system::system_error& e)
31+
{
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
From b2fd2bf9ef835104a813c40c190d71e3644125d7 Mon Sep 17 00:00:00 2001
2+
From: Rudi Heitbaum <rudi@heitbaum.com>
3+
Date: Thu, 19 Dec 2024 02:23:11 +1100
4+
Subject: [PATCH] use make_address from boost as from_string is deprecated
5+
(#1308)
6+
7+
Since boost 1.87.0 boost::asio::ip::address::from_string is no longer available
8+
9+
ref: https://github.com/boostorg/asio/commit/c0d1cfce7767599c4cf00df36f8017a1073339ae
10+
11+
fixes:
12+
../server/control_server.cpp: In member function 'void ControlServer::start()':
13+
../server/control_server.cpp:164:111: error: 'from_string' is not a member of 'boost::asio::ip::address'
14+
164 | tcp::endpoint(boost::asio::ip::address::from_string(address), tcp_settings_.port)));
15+
| ^~~~~~~~~~~
16+
../server/control_server.cpp:180:112: error: 'from_string' is not a member of 'boost::asio::ip::address'
17+
180 | tcp::endpoint(boost::asio::ip::address::from_string(address), http_settings_.port)));
18+
| ^~~~~~~~~~~
19+
../server/streamreader/tcp_stream.cpp: In constructor 'streamreader::TcpStream::TcpStream(streamreader::PcmStream::Listener*, boost::asio::io_context&, const ServerSettings&, const streamreader::StreamUri&)':
20+
../server/streamreader/tcp_stream.cpp:67:97: error: 'from_string' is not a member of 'boost::asio::ip::address'
21+
67 | acceptor_ = make_unique<tcp::acceptor>(strand_, tcp::endpoint(boost::asio::ip::address::from_string(host_), port_));
22+
| ^~~~~~~~~~~
23+
../server/streamreader/tcp_stream.cpp: In member function 'virtual void streamreader::TcpStream::connect()':
24+
../server/streamreader/tcp_stream.cpp:96:75: error: 'from_string' is not a member of 'boost::asio::ip::address'
25+
96 | boost::asio::ip::tcp::endpoint endpoint(boost::asio::ip::address::from_string(host_), port_);
26+
| ^~~~~~~~~~~
27+
../server/stream_server.cpp: In member function 'void StreamServer::start()':
28+
../server/stream_server.cpp:234:103: error: 'from_string' is not a member of 'boost::asio::ip::address'
29+
234 | tcp::endpoint(boost::asio::ip::address::from_string(address), settings_.stream.port)));
30+
|
31+
---
32+
server/control_server.cpp | 4 ++--
33+
server/stream_server.cpp | 2 +-
34+
server/streamreader/tcp_stream.cpp | 4 ++--
35+
3 files changed, 5 insertions(+), 5 deletions(-)
36+
37+
diff --git a/server/control_server.cpp b/server/control_server.cpp
38+
index 03b2db76..7945855b 100644
39+
--- a/server/control_server.cpp
40+
+++ b/server/control_server.cpp
41+
@@ -161,7 +161,7 @@ void ControlServer::start()
42+
{
43+
LOG(INFO, LOG_TAG) << "Creating TCP acceptor for address: " << address << ", port: " << tcp_settings_.port << "\n";
44+
acceptor_tcp_.emplace_back(make_unique<tcp::acceptor>(boost::asio::make_strand(io_context_.get_executor()),
45+
- tcp::endpoint(boost::asio::ip::make_address(address), settings_.tcp.port)));
46+
+ tcp::endpoint(boost::asio::ip::make_address(address), tcp_settings_.port)));
47+
}
48+
catch (const boost::system::system_error& e)
49+
{
50+
@@ -177,7 +177,7 @@ void ControlServer::start()
51+
{
52+
LOG(INFO, LOG_TAG) << "Creating HTTP acceptor for address: " << address << ", port: " << http_settings_.port << "\n";
53+
acceptor_http_.emplace_back(make_unique<tcp::acceptor>(boost::asio::make_strand(io_context_.get_executor()),
54+
- tcp::endpoint(boost::asio::ip::make_address(address), settings_.http.port)));
55+
+ tcp::endpoint(boost::asio::ip::make_address(address), http_settings_.port)));
56+
}
57+
catch (const boost::system::system_error& e)
58+
{
59+
60+
diff --git a/server/stream_server.cpp b/server/stream_server.cpp
61+
index 718e744f..ad2fec2c 100644
62+
--- a/server/stream_server.cpp
63+
+++ b/server/stream_server.cpp
64+
@@ -231,7 +231,7 @@ void StreamServer::start()
65+
{
66+
LOG(INFO, LOG_TAG) << "Creating stream acceptor for address: " << address << ", port: " << settings_.stream.port << "\n";
67+
acceptor_.emplace_back(make_unique<tcp::acceptor>(boost::asio::make_strand(io_context_.get_executor()),
68+
- tcp::endpoint(boost::asio::ip::address::from_string(address), settings_.stream.port)));
69+
+ tcp::endpoint(boost::asio::ip::make_address(address), settings_.stream.port)));
70+
}
71+
catch (const boost::system::system_error& e)
72+
{
73+
diff --git a/server/streamreader/tcp_stream.cpp b/server/streamreader/tcp_stream.cpp
74+
index 1ec68d6b..ed3fd75e 100644
75+
--- a/server/streamreader/tcp_stream.cpp
76+
+++ b/server/streamreader/tcp_stream.cpp
77+
@@ -64,7 +64,7 @@ TcpStream::TcpStream(PcmStream::Listener* pcmListener, boost::asio::io_context&
78+
79+
LOG(INFO, LOG_TAG) << "TcpStream host: " << host_ << ", port: " << port_ << ", is server: " << is_server_ << "\n";
80+
if (is_server_)
81+
- acceptor_ = make_unique<tcp::acceptor>(strand_, tcp::endpoint(boost::asio::ip::address::from_string(host_), port_));
82+
+ acceptor_ = make_unique<tcp::acceptor>(strand_, tcp::endpoint(boost::asio::ip::make_address(host_), port_));
83+
}
84+
85+
86+
@@ -93,7 +93,7 @@ void TcpStream::connect()
87+
else
88+
{
89+
stream_ = make_unique<tcp::socket>(strand_);
90+
- boost::asio::ip::tcp::endpoint endpoint(boost::asio::ip::address::from_string(host_), port_);
91+
+ boost::asio::ip::tcp::endpoint endpoint(boost::asio::ip::make_address(host_), port_);
92+
stream_->async_connect(endpoint,
93+
[this](const boost::system::error_code& ec)
94+
{
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
From 6190041e863968d76b6d16140bba90be6dff848f Mon Sep 17 00:00:00 2001
2+
From: badaix <johannes.pohl@badaix.de>
3+
Date: Thu, 19 Dec 2024 21:36:08 +0100
4+
Subject: [PATCH] Fix compilation with boost v1.87.0
5+
6+
---
7+
client/client_connection.cpp | 5 ++---
8+
server/stream_session_ws.cpp | 2 +-
9+
2 files changed, 3 insertions(+), 4 deletions(-)
10+
11+
diff --git a/client/client_connection.cpp b/client/client_connection.cpp
12+
index 53825864..6f34a018 100644
13+
--- a/client/client_connection.cpp
14+
+++ b/client/client_connection.cpp
15+
@@ -124,10 +124,9 @@ std::string ClientConnection::getMacAddress()
16+
17+
void ClientConnection::connect(const ResultHandler& handler)
18+
{
19+
- tcp::resolver::query query(server_.host, cpt::to_string(server_.port), boost::asio::ip::resolver_query_base::numeric_service);
20+
boost::system::error_code ec;
21+
LOG(INFO, LOG_TAG) << "Resolving host IP for: " << server_.host << "\n";
22+
- auto iterator = resolver_.resolve(query, ec);
23+
+ auto iterator = resolver_.resolve(server_.host, cpt::to_string(server_.port), boost::asio::ip::resolver_query_base::numeric_service, ec);
24+
if (ec)
25+
{
26+
LOG(ERROR, LOG_TAG) << "Failed to resolve host '" << server_.host << "', error: " << ec.message() << "\n";
27+
@@ -141,7 +140,7 @@ void ClientConnection::connect(const ResultHandler& handler)
28+
for (const auto& iter : iterator)
29+
{
30+
LOG(INFO, LOG_TAG) << "Connecting to " << iter.endpoint() << "\n";
31+
- socket_.connect(*iterator, ec);
32+
+ socket_.connect(iter, ec);
33+
if (!ec || (ec == boost::system::errc::interrupted))
34+
{
35+
// We were successful or interrupted, e.g. by sig int
36+
diff --git a/server/stream_session_ws.cpp b/server/stream_session_ws.cpp
37+
index 5f666618..117603f6 100644
38+
--- a/server/stream_session_ws.cpp
39+
+++ b/server/stream_session_ws.cpp
40+
@@ -114,7 +114,7 @@ void StreamSessionWebsocket::on_read_ws(beast::error_code ec, std::size_t bytes_
41+
return;
42+
}
43+
44+
- auto* data = boost::asio::buffer_cast<char*>(buffer_.data());
45+
+ auto* data = static_cast<char*>(buffer_.data().data());
46+
baseMessage_.deserialize(data);
47+
LOG(DEBUG, LOG_TAG) << "getNextMessage: " << baseMessage_.type << ", size: " << baseMessage_.size << ", id: " << baseMessage_.id
48+
<< ", refers: " << baseMessage_.refersTo << "\n";

0 commit comments

Comments
 (0)