MCPcopy Create free account
hub / github.com/ddnet/ddnet / sockaddr_to_netaddr_websocket

Function sockaddr_to_netaddr_websocket

src/engine/shared/websockets.cpp:82–105  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

80}
81
82static void sockaddr_to_netaddr_websocket(const sockaddr *src, socklen_t src_len, NETADDR *dst)
83{
84 *dst = NETADDR_ZEROED;
85 if(src->sa_family == AF_INET && src_len >= (socklen_t)sizeof(sockaddr_in))
86 {
87 const sockaddr_in *src_in = (const sockaddr_in *)src;
88 dst->type = NETTYPE_WEBSOCKET_IPV4;
89 dst->port = htons(src_in->sin_port);
90 static_assert(sizeof(dst->ip) >= sizeof(src_in->sin_addr.s_addr));
91 mem_copy(dst->ip, &src_in->sin_addr.s_addr, sizeof(src_in->sin_addr.s_addr));
92 }
93 else if(src->sa_family == AF_INET6 && src_len >= (socklen_t)sizeof(sockaddr_in6))
94 {
95 const sockaddr_in6 *src_in6 = (const sockaddr_in6 *)src;
96 dst->type = NETTYPE_WEBSOCKET_IPV6;
97 dst->port = htons(src_in6->sin6_port);
98 static_assert(sizeof(dst->ip) >= sizeof(src_in6->sin6_addr.s6_addr));
99 mem_copy(dst->ip, &src_in6->sin6_addr.s6_addr, sizeof(src_in6->sin6_addr.s6_addr));
100 }
101 else
102 {
103 log_warn("websockets", "Cannot convert sockaddr of family %d", src->sa_family);
104 }
105}
106
107static int websocket_protocol_callback(lws *wsi, enum lws_callback_reasons reason, void *user, void *in, size_t len)
108{

Callers 1

Calls 1

mem_copyFunction · 0.85

Tested by

no test coverage detected