From 4e6193a09ebf16c52892c2688ba843c7deecef65 Mon Sep 17 00:00:00 2001 From: Green Sky Date: Wed, 3 Apr 2024 14:50:06 +0200 Subject: [PATCH] update tox private impl --- src/tox_private_impl.hpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/tox_private_impl.hpp b/src/tox_private_impl.hpp index fe2605d..706d8ef 100644 --- a/src/tox_private_impl.hpp +++ b/src/tox_private_impl.hpp @@ -16,4 +16,20 @@ struct ToxPrivateImpl : public ToxPrivateI { uint16_t toxDHTGetNumCloselistAnnounceCapable(void) override { return tox_dht_get_num_closelist_announce_capable(_tox); } + + std::tuple, Tox_Err_Group_Peer_Query> toxGroupPeerGetIPAddress(uint32_t group_number, uint32_t peer_id) override { + Tox_Err_Group_Peer_Query err = TOX_ERR_GROUP_PEER_QUERY_OK; + size_t str_size = tox_group_peer_get_ip_address_size(_tox, group_number, peer_id, &err); + if (err != TOX_ERR_GROUP_PEER_QUERY_OK) { + return {std::nullopt, err}; + } + std::string ip_str(str_size, '\0'); + + tox_group_peer_get_ip_address(_tox, group_number, peer_id, reinterpret_cast(ip_str.data()), &err); + if (err == TOX_ERR_GROUP_PEER_QUERY_OK) { + return {ip_str, err}; + } else { + return {std::nullopt, err}; + } + } };