mirror of
https://github.com/cesanta/mongoose.git
synced 2026-10-27 12:26:24 +00:00
optimized mg_addr structure
This commit is contained in:
1 parent
dcfa7ad657
commit
dd32deb2ad
9 files changed
+134
-91
No files matched your search
+4
-4
@@ -57,12 +57,12 @@ static socklen_t tousa(struct mg_addr *a, union usa *usa) {
|
||||
memset(usa, 0, sizeof(*usa));
|
||||
usa->sin.sin_family = AF_INET;
|
||||
usa->sin.sin_port = a->port;
|
||||
*(uint32_t *) &usa->sin.sin_addr = a->ip;
|
||||
memcpy(&usa->sin.sin_addr, a->ip, sizeof(uint32_t));
|
||||
#if MG_ENABLE_IPV6
|
||||
if (a->is_ip6) {
|
||||
usa->sin.sin_family = AF_INET6;
|
||||
usa->sin6.sin6_port = a->port;
|
||||
memcpy(&usa->sin6.sin6_addr, a->ip6, sizeof(a->ip6));
|
||||
memcpy(&usa->sin6.sin6_addr, a->ip, sizeof(a->ip));
|
||||
len = sizeof(usa->sin6);
|
||||
}
|
||||
#endif
|
||||
@@ -72,10 +72,10 @@ static socklen_t tousa(struct mg_addr *a, union usa *usa) {
|
||||
static void tomgaddr(union usa *usa, struct mg_addr *a, bool is_ip6) {
|
||||
a->is_ip6 = is_ip6;
|
||||
a->port = usa->sin.sin_port;
|
||||
memcpy(&a->ip, &usa->sin.sin_addr, sizeof(a->ip));
|
||||
memcpy(&a->ip, &usa->sin.sin_addr, sizeof(uint32_t));
|
||||
#if MG_ENABLE_IPV6
|
||||
if (is_ip6) {
|
||||
memcpy(a->ip6, &usa->sin6.sin6_addr, sizeof(a->ip6));
|
||||
memcpy(a->ip, &usa->sin6.sin6_addr, sizeof(a->ip));
|
||||
a->port = usa->sin6.sin6_port;
|
||||
}
|
||||
#endif
|
||||
|
||||
Reference in new issue
Block a user