TcpServer/TcpReactor Framework

This commit is contained in:
2026-09-08 10:35:16 +08:00
parent 4711ab6603
commit ac4045a979
23 changed files with 1831 additions and 20 deletions
+35
View File
@@ -0,0 +1,35 @@
#ifndef INCLUDED_C_SOCKADDRUTIL_H
#define INCLUDED_C_SOCKADDRUTIL_H
#ifndef INCLUDED_C_SOCKADDR_H
#include <c_SockAddr.h>
#endif /*INCLUDED_C_SOCKADDR_H*/
#ifndef INCLUDED_C_ADDRINFO_H
#include <c_AddrInfo.h>
#endif /*INCLUDED_C_ADDRINFO_H*/
/* ------------------------------------------------------------------------------------------------------------------ */
/* */
/**
* @brief Extends extraction mapping from a resolved c_AddrInfo_t instance.
*/
C_STATIC_FORCE_INLINE c_err_t c_SockAddrUtil_FromAddrInfo(c_SockAddr_t* sock_addr, const c_AddrInfo_t* addr) {
if (!sock_addr || !addr || !addr->addrinfo_p) return C_ERR_PARAM;
size_t len = addr->addrinfo_p->ai_addrlen;
if (addr->addrinfo_p->ai_family == AF_INET && len <= sizeof(struct sockaddr_in)) {
memcpy(&sock_addr->ipv4, addr->addrinfo_p->ai_addr, len);
return C_ERR_OK;
} else if (addr->addrinfo_p->ai_family == AF_INET6 && len <= sizeof(struct sockaddr_in6)) {
memcpy(&sock_addr->ipv6, addr->addrinfo_p->ai_addr, len);
return C_ERR_OK;
}
return C_ERR_FAIL;
}
#endif /*INCLUDED_C_SOCKADDRUTIL_H*/