17#ifndef TOOLBOX_NET_SOCKET_HPP
18#define TOOLBOX_NET_SOCKET_HPP
26#include <netinet/tcp.h>
27#include <linux/net_tstamp.h>
37 std::error_code&
ec)
noexcept
54 "getaddrinfo (" + std::string{
node ?
node :
""} +
")"};
61 int protocol, std::error_code&
ec)
noexcept
66 hints.ai_family = family;
67 hints.ai_socktype = type;
68 hints.ai_protocol = protocol;
79 hints.ai_family = family;
80 hints.ai_socktype = type;
81 hints.ai_protocol = protocol;
86template <
typename ProtocolT>
88 std::error_code&
ec)
noexcept
94template <
typename ProtocolT>
145template <
typename ProtocolT>
148 return socket(protocol.family(), protocol.type(), protocol.protocol(),
ec);
152template <
typename ProtocolT>
155 return socket(protocol.family(), protocol.type(), protocol.protocol());
159inline std::pair<FileHandle, FileHandle>
socketpair(
int family,
int type,
int protocol,
160 std::error_code&
ec)
noexcept
159inline std::pair<FileHandle, FileHandle>
socketpair(
int family,
int type,
int protocol, {
…}
170inline std::pair<FileHandle, FileHandle>
socketpair(
int family,
int type,
int protocol)
170inline std::pair<FileHandle, FileHandle>
socketpair(
int family,
int type,
int protocol) {
…}
180template <
typename ProtocolT>
182 std::error_code&
ec)
noexcept
184 return socketpair(protocol.family(), protocol.type(), protocol.protocol(),
ec);
188template <
typename ProtocolT>
191 return socketpair(protocol.family(), protocol.type(), protocol.protocol());
196 std::error_code&
ec)
noexcept
240template <
typename Endpo
intT>
246 ep.resize(std::min<std::size_t>(
addrlen,
ep.capacity()));
252template <
typename Endpo
intT>
257 ep.resize(std::min<std::size_t>(
addrlen,
ep.capacity()));
278template <
typename Endpo
intT>
285template <
typename Endpo
intT>
293 std::error_code&
ec)
noexcept
309template <
typename Endpo
intT>
316template <
typename Endpo
intT>
431template <
typename Endpo
intT>
433 std::error_code&
ec)
noexcept
438 ep.resize(std::min<std::size_t>(
addrlen,
ep.capacity()));
444template <
typename Endpo
intT>
449 ep.resize(std::min<std::size_t>(
addrlen,
ep.capacity()));
454template <
typename Endpo
intT>
456 std::error_code&
ec)
noexcept
462template <
typename Endpo
intT>
470 std::error_code&
ec)
noexcept
524template <
typename Endpo
intT>
526 std::error_code& )
noexcept
532template <
typename Endpo
intT>
540template <
typename Endpo
intT>
542 std::error_code&
ec)
noexcept
549template <
typename Endpo
intT>
558 std::error_code&
ec)
noexcept
578template <
typename Endpo
intT>
584 ep.resize(std::min<std::size_t>(
addrlen,
ep.capacity()));
589template <
typename Endpo
intT>
594 ep.resize(std::min<std::size_t>(
addrlen,
ep.capacity()));
599 std::error_code&
ec)
noexcept
616 std::error_code&
ec)
noexcept
632inline namespace net {
637template <
typename Endpo
intT>
643template <
typename Endpo
intT>