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:
@ -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;
|
||||
|
Reference in New Issue
Block a user