mirror of
https://code.semirocket.science/wrapsix
synced 2024-12-22 12:30:18 +02:00
Fixed 4-to-6 and 6-to-4 IP address translators
This commit is contained in:
parent
378f34ec64
commit
aee57c680a
@ -175,13 +175,25 @@ int process(char *packet)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Translator of IPv6 address with embedded IPv4 address to that IPv4 address.
|
||||
*
|
||||
* @param ipv6_addr IPv6 address (as data source)
|
||||
* @param ipv4_addr Where to put final IPv4 address
|
||||
*/
|
||||
void ipv6_to_ipv4(struct s_ipv6_addr *ipv6_addr, struct s_ipv4_addr *ipv4_addr)
|
||||
{
|
||||
memcpy(ipv4_addr, &ipv6_addr + 12, 4);
|
||||
memcpy(ipv4_addr, ipv6_addr->addr + 12, 4);
|
||||
}
|
||||
|
||||
/**
|
||||
* Translator of IPv4 address to IPv6 address with WrapSix' prefix.
|
||||
*
|
||||
* @param ipv4_addr IPv4 address (as data source)
|
||||
* @param ipv6_addr Where to put final IPv6 address
|
||||
*/
|
||||
void ipv4_to_ipv6(struct s_ipv4_addr *ipv4_addr, struct s_ipv6_addr *ipv6_addr)
|
||||
{
|
||||
*ipv6_addr = wrapsix_ipv6_prefix;
|
||||
memcpy(ipv6_addr + 12, &ipv4_addr, 4);
|
||||
memcpy(ipv6_addr, &wrapsix_ipv6_prefix, 12);
|
||||
memcpy(ipv6_addr->addr + 12, ipv4_addr, 4);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user