1
0
mirror of https://github.com/SoftEtherVPN/SoftEtherVPN.git synced 2025-07-15 20:25:00 +03:00

Change IP structure so that IPv4 addresses are stored in RFC3493 format

In addition to saving 4 bytes for each instantiation, this change makes IP-related operations faster and clearer.

https://tools.ietf.org/html/rfc3493.html#section-3.7
This commit is contained in:
Davide Beatrici
2021-04-07 21:24:55 +02:00
parent 01663f836d
commit 1708998a11
21 changed files with 295 additions and 403 deletions

View File

@ -134,47 +134,21 @@ UINT ProtoSessionHash(void *p)
}
ip = &session->SrcIp;
if (IsIP6(ip))
for (BYTE i = 0; i < sizeof(ip->address); ++i)
{
UINT i;
for (i = 0; i < sizeof(ip->ipv6_addr); ++i)
{
ret += ip->ipv6_addr[i];
}
ret += ip->ipv6_scope_id;
}
else
{
UINT i;
for (i = 0; i < sizeof(ip->addr); ++i)
{
ret += ip->addr[i];
}
ret += ip->address[i];
}
ret += ip->ipv6_scope_id;
ret += session->SrcPort;
ip = &session->DstIp;
if (IsIP6(ip))
for (BYTE i = 0; i < sizeof(ip->address); ++i)
{
UINT i;
for (i = 0; i < sizeof(ip->ipv6_addr); ++i)
{
ret += ip->ipv6_addr[i];
}
ret += ip->ipv6_scope_id;
}
else
{
UINT i;
for (i = 0; i < sizeof(ip->addr); ++i)
{
ret += ip->addr[i];
}
ret += ip->address[i];
}
ret += ip->ipv6_scope_id;
ret += session->DstPort;
return ret;