18 template <
class ConnType>
34 virtual bool on_read(
size_t, uint8_t*&, sockaddr)
47 const std::string&
host,
const std::string& service)
84 const sockaddr* addr,
int address_family = AF_INET)
86 constexpr auto buf_len = INET6_ADDRSTRLEN;
87 char buf[buf_len] = {};
90 if (address_family == AF_INET6)
92 const auto in6 = (
const sockaddr_in6*)addr;
93 if ((rc = uv_ip6_name(in6, buf, buf_len)) != 0)
99 fmt::format(
"[{}]", buf), fmt::format(
"{}", ntohs(in6->sin6_port))};
102 assert(address_family == AF_INET);
103 const auto in4 = (
const sockaddr_in*)addr;
104 if ((rc = uv_ip4_name(in4, buf, buf_len)) != 0)
106 LOG_FAIL_FMT(
"uv_ip4_name failed: {}", uv_strerror(rc));
109 return {buf, fmt::format(
"{}", ntohs(in4->sin_port))};
Callback service for user-specific behaviour for TCP and UDP connections.
Definition socket.h:20
virtual bool on_read(size_t, uint8_t *&, sockaddr)
Definition socket.h:34
virtual void on_connect()
Definition socket.h:51
virtual void on_connect_failed()
Definition socket.h:65
virtual void on_bind_failed()
Failure loggers for when things go wrong, but not fatal.
Definition socket.h:61
virtual void on_disconnect()
Definition socket.h:55
virtual void on_start(int64_t)
To be implemented by all servers (after registration)
Definition socket.h:43
virtual ~SocketBehaviour()
Definition socket.h:30
const char * name
Definition socket.h:22
virtual void on_resolve_failed()
Failure loggers for when things go wrong, fataly.
Definition socket.h:71
virtual void on_accept(ConnType &)
To be implemented by servers with connections.
Definition socket.h:40
virtual void on_listen_failed()
Definition socket.h:76
virtual void on_listening(const std::string &host, const std::string &service)
Generic loggers for common reactions.
Definition socket.h:46
SocketBehaviour(const char *name, const char *conn_name)
Definition socket.h:26
const char * conn_name
Definition socket.h:23
#define LOG_INFO_FMT
Definition logger.h:362
#define LOG_TRACE_FMT
Definition logger.h:356
#define LOG_FATAL_FMT
Definition logger.h:364
#define LOG_FAIL_FMT
Definition logger.h:363
std::pair< std::string, std::string > addr_to_str(const sockaddr *addr, int address_family=AF_INET)
Definition socket.h:83
Definition configuration.h:14