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}; + } + } };