0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-06-11 14:38:57 +02:00

ircd::net: Add UDP analogues for the make_endpoint() related.

This commit is contained in:
Jason Volk 2018-01-28 14:18:47 -08:00
parent 7057e1d98d
commit 670b4b8e23
2 changed files with 27 additions and 0 deletions

View file

@ -43,7 +43,9 @@ namespace ircd::net
std::string string(const ip::tcp::endpoint &);
ipport make_ipport(const boost::asio::ip::tcp::endpoint &);
ipport make_ipport(const boost::asio::ip::udp::endpoint &);
ip::tcp::endpoint make_endpoint(const ipport &);
ip::udp::endpoint make_endpoint_udp(const ipport &);
}
#include <ircd/net/socket.h>

View file

@ -2553,6 +2553,15 @@ ircd::net::string(const mutable_buffer &buf,
return { data(buf), size_t(len) };
}
ircd::net::ipport
ircd::net::make_ipport(const boost::asio::ip::udp::endpoint &ep)
{
return ipport
{
ep.address(), ep.port()
};
}
ircd::net::ipport
ircd::net::make_ipport(const boost::asio::ip::tcp::endpoint &ep)
{
@ -2562,6 +2571,22 @@ ircd::net::make_ipport(const boost::asio::ip::tcp::endpoint &ep)
};
}
boost::asio::ip::udp::endpoint
ircd::net::make_endpoint_udp(const ipport &ipport)
{
return
{
is_v6(ipport)? ip::udp::endpoint
{
asio::ip::address_v6 { std::get<ipport.IP>(ipport) }, port(ipport)
}
: ip::udp::endpoint
{
asio::ip::address_v4 { host4(ipport) }, port(ipport)
},
};
}
boost::asio::ip::tcp::endpoint
ircd::net::make_endpoint(const ipport &ipport)
{