refactor: use `tr_socket_address::from_string()`
This commit is contained in:
parent
b4ad1f78fc
commit
3fe87979a1
|
@ -808,6 +808,19 @@ bool tr_socket_address::is_valid_for_peers(tr_peer_from from) const noexcept
|
|||
!is_martian_addr(address_, from);
|
||||
}
|
||||
|
||||
std::optional<tr_socket_address> tr_socket_address::from_string(std::string_view sockaddr_sv)
|
||||
{
|
||||
auto ss = sockaddr_storage{};
|
||||
auto sslen = int{ sizeof(ss) };
|
||||
if (evutil_parse_sockaddr_port(tr_strbuf<char, TR_ADDRSTRLEN>{ sockaddr_sv }, reinterpret_cast<sockaddr*>(&ss), &sslen) !=
|
||||
0)
|
||||
{
|
||||
return {};
|
||||
}
|
||||
|
||||
return from_sockaddr(reinterpret_cast<struct sockaddr const*>(&ss));
|
||||
}
|
||||
|
||||
std::optional<tr_socket_address> tr_socket_address::from_sockaddr(struct sockaddr const* from)
|
||||
{
|
||||
if (from == nullptr)
|
||||
|
|
|
@ -378,6 +378,7 @@ struct tr_socket_address
|
|||
|
||||
// --- sockaddr helpers
|
||||
|
||||
[[nodiscard]] static std::optional<tr_socket_address> from_string(std::string_view sockaddr_sv);
|
||||
[[nodiscard]] static std::optional<tr_socket_address> from_sockaddr(sockaddr const*);
|
||||
[[nodiscard]] static std::pair<sockaddr_storage, socklen_t> to_sockaddr(tr_address const& addr, tr_port port) noexcept;
|
||||
|
||||
|
|
|
@ -343,17 +343,9 @@ private:
|
|||
}
|
||||
}
|
||||
|
||||
auto mcast_ss = sockaddr_storage{};
|
||||
auto mcast_sslen = int{ sizeof(mcast_ss) };
|
||||
if (evutil_parse_sockaddr_port(
|
||||
std::data(McastSockAddr[ip_protocol]),
|
||||
reinterpret_cast<sockaddr*>(&mcast_ss),
|
||||
&mcast_sslen) == -1)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
auto mcast_sockaddr = tr_socket_address::from_sockaddr(reinterpret_cast<sockaddr*>(&mcast_ss));
|
||||
auto const mcast_sockaddr = tr_socket_address::from_string(McastSockAddr[ip_protocol]);
|
||||
TR_ASSERT(mcast_sockaddr);
|
||||
auto const [mcast_ss, mcast_sslen] = mcast_sockaddr->to_sockaddr();
|
||||
|
||||
auto const [bind_ss, bind_sslen] = tr_socket_address::to_sockaddr(
|
||||
tr_address::any(ip_protocol),
|
||||
|
|
Loading…
Reference in New Issue