Initial commit
Some checks failed
CI / build-and-analyze (push) Failing after 1m57s

This commit is contained in:
2026-08-08 16:00:39 +03:00
commit aec33ef3d8
18 changed files with 2005 additions and 0 deletions

39
win32/Addr.c Normal file
View File

@@ -0,0 +1,39 @@
#include "Internal.h"
#include <string.h>
#include <assert.h>
int CgeNetAddrFromStr(const char *str, uint16_t port, CgeNetAddr *addr) {
struct addrinfo *result, *rp;
int code, found;
assert(str != NULL);
assert(addr != NULL);
code = getaddrinfo(str, NULL, NULL, &result);
if (code) {
return 0;
}
found = 0;
for (rp = result; rp != NULL; rp = rp->ai_next) {
if (rp->ai_family == AF_INET) {
struct sockaddr_in *sa4 = (struct sockaddr_in *)rp->ai_addr;
addr->ipv4.type = CGE_NET_IPV4;
memcpy(addr->ipv4.addr, &sa4->sin_addr, 4);
addr->ipv4.port = port;
found = 1;
break;
} else if (rp->ai_family == AF_INET6) {
struct sockaddr_in6 *sa6 = (struct sockaddr_in6 *)rp->ai_addr;
addr->ipv6.type = CGE_NET_IPV6;
memcpy(addr->ipv6.addr, &sa6->sin6_addr, 16);
addr->ipv6.port = port;
found = 1;
break;
}
}
freeaddrinfo(result);
return found;
}