Added comments regarding IPv4-in-IPv6

This commit is contained in:
Robinson 2021-04-08 20:55:05 +02:00
parent 9a8b5aa364
commit 6c36751d05
1 changed files with 6 additions and 3 deletions

View File

@ -229,17 +229,20 @@ object IPv6 {
// Verify this address is of the correct structure to contain an IPv4 address. // Verify this address is of the correct structure to contain an IPv4 address.
// It must be IPv4-Mapped or IPv4-Compatible // It must be IPv4-Mapped or IPv4-Compatible
// a valid one is, for example: 0000:0000:0000:0000:0000:0000:192.168.89.9
// (see https://tools.ietf.org/html/rfc4291#section-2.5.5). // (see https://tools.ietf.org/html/rfc4291#section-2.5.5).
val ipv4Start = i - wordLen val ipv4Start = i - wordLen
var j = ipv4Start - 2 // index of character before the previous ':'. var j = ipv4Start - 2 // index of character before the previous ':'.
if (IPv4.isValidIPv4MappedChar(ip[j])) { if (IPv4.isValidIPv4MappedChar(ip[j])) {
if (!IPv4.isValidIPv4MappedChar(ip[j - 1]) if (!IPv4.isValidIPv4MappedChar(ip[j - 1]) ||
|| !IPv4.isValidIPv4MappedChar(ip[j - 2]) !IPv4.isValidIPv4MappedChar(ip[j - 2]) ||
|| !IPv4.isValidIPv4MappedChar(ip[j - 3])) { !IPv4.isValidIPv4MappedChar(ip[j - 3])) {
return false return false
} }
j -= 5 j -= 5
} }
while (j >= start) { while (j >= start) {
val tmpChar = ip[j] val tmpChar = ip[j]
if (tmpChar != '0' && tmpChar != ':') { if (tmpChar != '0' && tmpChar != ':') {