mirror of
https://github.com/matrix-construct/construct
synced 2024-12-30 17:34:04 +01:00
ircd::net: Minor simplify API.
This commit is contained in:
parent
2bca92d85d
commit
6f81d0c643
2 changed files with 68 additions and 88 deletions
|
@ -70,20 +70,18 @@ namespace ircd::net
|
|||
ipport local_ipport(const socket &) noexcept;
|
||||
ipport remote_ipport(const socket &) noexcept;
|
||||
|
||||
const_raw_buffer peer_cert_der(const mutable_raw_buffer &, const socket &);
|
||||
|
||||
size_t write(socket &, const ilist<const_buffer> &); // write_all
|
||||
size_t write(socket &, const iov<const_buffer> &); // write_all
|
||||
size_t write(socket &, const const_buffer &); // write_all
|
||||
size_t write(socket &, iov<const_buffer> &); // write_some
|
||||
|
||||
size_t read(socket &, const ilist<mutable_buffer> &); // read_all
|
||||
size_t read(socket &, const iov<mutable_buffer> &); // read_all
|
||||
size_t read(socket &, const mutable_buffer &); // read_all
|
||||
size_t read(socket &, iov<mutable_buffer> &); // read_some
|
||||
|
||||
std::shared_ptr<socket> connect(const remote &, const milliseconds &timeout = 30000ms);
|
||||
bool disconnect(socket &, const dc &type = dc::SSL_NOTIFY) noexcept;
|
||||
|
||||
const_raw_buffer peer_cert_der(const mutable_raw_buffer &, const socket &);
|
||||
}
|
||||
|
||||
struct ircd::net::init
|
||||
|
|
150
ircd/net.cc
150
ircd/net.cc
|
@ -57,32 +57,6 @@ ircd::net::init::~init()
|
|||
// socket (public)
|
||||
//
|
||||
|
||||
ircd::const_raw_buffer
|
||||
ircd::net::peer_cert_der(const mutable_raw_buffer &buf,
|
||||
const socket &socket)
|
||||
{
|
||||
const SSL &ssl(socket);
|
||||
const X509 &cert(openssl::get_peer_cert(ssl));
|
||||
return openssl::i2d(buf, cert);
|
||||
}
|
||||
|
||||
std::shared_ptr<ircd::net::socket>
|
||||
ircd::net::connect(const net::remote &remote,
|
||||
const milliseconds &timeout)
|
||||
{
|
||||
const auto ep{make_endpoint(remote)};
|
||||
return connect(ep, timeout);
|
||||
}
|
||||
|
||||
std::shared_ptr<ircd::net::socket>
|
||||
ircd::net::connect(const ip::tcp::endpoint &remote,
|
||||
const milliseconds &timeout)
|
||||
{
|
||||
const auto ret(std::make_shared<socket>());
|
||||
ret->connect(remote, timeout);
|
||||
return ret;
|
||||
}
|
||||
|
||||
bool
|
||||
ircd::net::disconnect(socket &socket,
|
||||
const dc &type)
|
||||
|
@ -102,6 +76,23 @@ catch(const std::exception &e)
|
|||
return false;
|
||||
}
|
||||
|
||||
std::shared_ptr<ircd::net::socket>
|
||||
ircd::net::connect(const net::remote &remote,
|
||||
const milliseconds &timeout)
|
||||
{
|
||||
const auto ep{make_endpoint(remote)};
|
||||
return connect(ep, timeout);
|
||||
}
|
||||
|
||||
std::shared_ptr<ircd::net::socket>
|
||||
ircd::net::connect(const ip::tcp::endpoint &remote,
|
||||
const milliseconds &timeout)
|
||||
{
|
||||
const auto ret(std::make_shared<socket>());
|
||||
ret->connect(remote, timeout);
|
||||
return ret;
|
||||
}
|
||||
|
||||
size_t
|
||||
ircd::net::read(socket &socket,
|
||||
iov<mutable_buffer> &bufs)
|
||||
|
@ -119,14 +110,6 @@ ircd::net::read(socket &socket,
|
|||
return socket.read(bufs);
|
||||
}
|
||||
|
||||
size_t
|
||||
ircd::net::read(socket &socket,
|
||||
const mutable_buffer &buf)
|
||||
{
|
||||
const ilist<mutable_buffer> bufs{buf};
|
||||
return socket.read(bufs);
|
||||
}
|
||||
|
||||
size_t
|
||||
ircd::net::write(socket &socket,
|
||||
iov<const_buffer> &bufs)
|
||||
|
@ -146,16 +129,6 @@ ircd::net::write(socket &socket,
|
|||
return wrote;
|
||||
}
|
||||
|
||||
size_t
|
||||
ircd::net::write(socket &socket,
|
||||
const const_buffer &buf)
|
||||
{
|
||||
const ilist<const_buffer> bufs{buf};
|
||||
const size_t wrote(socket.write(bufs));
|
||||
assert(wrote == size(bufs));
|
||||
return wrote;
|
||||
}
|
||||
|
||||
size_t
|
||||
ircd::net::write(socket &socket,
|
||||
const ilist<const_buffer> &bufs)
|
||||
|
@ -165,6 +138,55 @@ ircd::net::write(socket &socket,
|
|||
return wrote;
|
||||
}
|
||||
|
||||
ircd::const_raw_buffer
|
||||
ircd::net::peer_cert_der(const mutable_raw_buffer &buf,
|
||||
const socket &socket)
|
||||
{
|
||||
const SSL &ssl(socket);
|
||||
const X509 &cert(openssl::get_peer_cert(ssl));
|
||||
return openssl::i2d(buf, cert);
|
||||
}
|
||||
|
||||
ircd::net::ipport
|
||||
ircd::net::local_ipport(const socket &socket)
|
||||
noexcept try
|
||||
{
|
||||
const auto &ep(socket.local());
|
||||
return make_ipport(ep);
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
return {};
|
||||
}
|
||||
|
||||
ircd::net::ipport
|
||||
ircd::net::remote_ipport(const socket &socket)
|
||||
noexcept try
|
||||
{
|
||||
const auto &ep(socket.remote());
|
||||
return make_ipport(ep);
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
return {};
|
||||
}
|
||||
|
||||
size_t
|
||||
ircd::net::available(const socket &s)
|
||||
noexcept
|
||||
{
|
||||
boost::system::error_code ec;
|
||||
const ip::tcp::socket &sd(s);
|
||||
return sd.available(ec);
|
||||
}
|
||||
|
||||
bool
|
||||
ircd::net::connected(const socket &s)
|
||||
noexcept
|
||||
{
|
||||
return s.connected();
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// net/listener.h
|
||||
|
@ -670,46 +692,6 @@ ircd::net::sslv23_client
|
|||
boost::asio::ssl::context::method::sslv23_client
|
||||
};
|
||||
|
||||
ircd::net::ipport
|
||||
ircd::net::local_ipport(const socket &socket)
|
||||
noexcept try
|
||||
{
|
||||
const auto &ep(socket.local());
|
||||
return make_ipport(ep);
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
return {};
|
||||
}
|
||||
|
||||
ircd::net::ipport
|
||||
ircd::net::remote_ipport(const socket &socket)
|
||||
noexcept try
|
||||
{
|
||||
const auto &ep(socket.remote());
|
||||
return make_ipport(ep);
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
return {};
|
||||
}
|
||||
|
||||
size_t
|
||||
ircd::net::available(const socket &s)
|
||||
noexcept
|
||||
{
|
||||
boost::system::error_code ec;
|
||||
const ip::tcp::socket &sd(s);
|
||||
return sd.available(ec);
|
||||
}
|
||||
|
||||
bool
|
||||
ircd::net::connected(const socket &s)
|
||||
noexcept
|
||||
{
|
||||
return s.connected();
|
||||
}
|
||||
|
||||
//
|
||||
// socket::io
|
||||
//
|
||||
|
|
Loading…
Reference in a new issue