version 1.21, 2020/05/27 15:03:28
|
version 1.21.18.1, 2022/09/12 21:26:33
|
Line 12 terms:
|
Line 12 terms:
|
All of the documentation and software included in the ELWIX and AITNET |
All of the documentation and software included in the ELWIX and AITNET |
Releases is copyrighted by ELWIX - Sofia/Bulgaria <info@elwix.org> |
Releases is copyrighted by ELWIX - Sofia/Bulgaria <info@elwix.org> |
|
|
Copyright 2004 - 2020 | Copyright 2004 - 2022 |
by Michael Pounov <misho@elwix.org>. All rights reserved. |
by Michael Pounov <misho@elwix.org>. All rights reserved. |
|
|
Redistribution and use in source and binary forms, with or without |
Redistribution and use in source and binary forms, with or without |
Line 813 e_network(const char *csAddr, netaddr_t * __restrict n
|
Line 813 e_network(const char *csAddr, netaddr_t * __restrict n
|
if (mask > 128) |
if (mask > 128) |
return -1; |
return -1; |
else { |
else { |
|
#ifndef __linux__ |
for (i = 0; i < 4 && (mask / 32); i++, mask -= 32) |
for (i = 0; i < 4 && (mask / 32); i++, mask -= 32) |
net->mask.in6.__u6_addr.__u6_addr32[i] = 0xFFFFFFFF; |
net->mask.in6.__u6_addr.__u6_addr32[i] = 0xFFFFFFFF; |
if (mask) |
if (mask) |
net->mask.in6.__u6_addr.__u6_addr32[i] = E_CIDRMASK(mask % 32); |
net->mask.in6.__u6_addr.__u6_addr32[i] = E_CIDRMASK(mask % 32); |
|
#else |
|
for (i = 0; i < 4 && (mask / 32); i++, mask -= 32) |
|
net->mask.in6.__in6_u.__u6_addr32[i] = 0xFFFFFFFF; |
|
if (mask) |
|
net->mask.in6.__in6_u.__u6_addr32[i] = E_CIDRMASK(mask % 32); |
|
#endif |
} |
} |
|
|
inet_pton(AF_INET6, szAddr, &a.in6); |
inet_pton(AF_INET6, szAddr, &a.in6); |
|
|
#ifndef __linux__ |
#ifndef __linux__ |
net->addr.sin6.sin6_len = sizeof net->addr.sin6; |
net->addr.sin6.sin6_len = sizeof net->addr.sin6; |
#endif |
|
for (i = 0; i < 4; i++) |
for (i = 0; i < 4; i++) |
net->addr.sin6.sin6_addr.__u6_addr.__u6_addr32[i] = |
net->addr.sin6.sin6_addr.__u6_addr.__u6_addr32[i] = |
a.in6.__u6_addr.__u6_addr32[i] & net->mask.in6.__u6_addr.__u6_addr32[i]; |
a.in6.__u6_addr.__u6_addr32[i] & net->mask.in6.__u6_addr.__u6_addr32[i]; |
|
#else |
|
for (i = 0; i < 4; i++) |
|
net->addr.sin6.sin6_addr.__in6_u.__u6_addr32[i] = |
|
a.in6.__in6_u.__u6_addr32[i] & net->mask.in6.__in6_u.__u6_addr32[i]; |
|
#endif |
} else { |
} else { |
if (mask > 32) |
if (mask > 32) |
return -1; |
return -1; |