From 9437c911b1bee3e8869fd46ad9a878dc49038548 Mon Sep 17 00:00:00 2001 From: Dennis Klein Date: Tue, 7 Jan 2025 18:50:36 +0100 Subject: [PATCH] fix(tools): No longer use deprecated query API Deprecated via https://github.com/chriskohlhoff/asio/commit/74fe2b8e1474f3bdac9f509c15aa095da0562e2d and removed via https://github.com/chriskohlhoff/asio/commit/13f0683879b127c6d679c682cf0a726f9f8dd643 in Boost 1.87 or Asio 1.33. --- fairmq/tools/Network.cxx | 28 +++++++++------------------- 1 file changed, 9 insertions(+), 19 deletions(-) diff --git a/fairmq/tools/Network.cxx b/fairmq/tools/Network.cxx index a5e9e4bbb..47283a8d2 100644 --- a/fairmq/tools/Network.cxx +++ b/fairmq/tools/Network.cxx @@ -1,5 +1,5 @@ /******************************************************************************** - * Copyright (C) 2017-2021 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH * + * Copyright (C) 2017-2025 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH * * * * This software is distributed under the terms of the * * GNU Lesser General Public Licence (LGPL) version 3, * @@ -8,12 +8,12 @@ #include #include +#include #ifndef _GNU_SOURCE #define _GNU_SOURCE // To get defns of NI_MAXSERV and NI_MAXHOST #endif -#include #include #include // trim #include @@ -161,26 +161,16 @@ string getIpFromHostname(const string& hostname) { boost::asio::io_context ioc; - using namespace boost::asio::ip; - try { - tcp::resolver resolver(ioc); - tcp::resolver::query query(hostname, ""); - tcp::resolver::iterator end; - - auto it = find_if(static_cast>(resolver.resolve(query)), - end, - [](const tcp::endpoint& ep) { return ep.address().is_v4(); }); - - if (it != end) { - stringstream ss; - ss << static_cast(*it).address(); - return ss.str(); - } + boost::asio::ip::tcp::resolver resolver(ioc); + auto result = resolver.resolve(boost::asio::ip::tcp::v4(), hostname, ""); - LOG(warn) << "could not find ipv4 address for hostname '" << hostname << "'"; + if (result.empty()) { + LOG(warn) << "could not find ipv4 address for hostname '" << hostname << "'"; + return ""; + } - return ""; + return ToString(result.begin()->endpoint().address()); } catch (exception& e) { LOG(error) << "could not resolve hostname '" << hostname << "', reason: " << e.what(); return "";