vsprintf: Update %pI6c to not compress a single 0
RFC 5952 (http://tools.ietf.org/html/rfc5952) mandates that 2 or more consecutive 0's are required before using :: compression. Update ip6_compressed_string to match the RFC and update the http reference as well. Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
dac853ae89
commit
29cf519ee0
1 changed files with 3 additions and 1 deletions
|
@ -666,6 +666,8 @@ char *ip6_compressed_string(char *p, const char *addr)
|
||||||
colonpos = i;
|
colonpos = i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (longest == 1) /* don't compress a single 0 */
|
||||||
|
colonpos = -1;
|
||||||
|
|
||||||
/* emit address */
|
/* emit address */
|
||||||
for (i = 0; i < range; i++) {
|
for (i = 0; i < range; i++) {
|
||||||
|
@ -826,7 +828,7 @@ int kptr_restrict __read_mostly;
|
||||||
* IPv4 uses dot-separated decimal with leading 0's (010.123.045.006)
|
* IPv4 uses dot-separated decimal with leading 0's (010.123.045.006)
|
||||||
* - '[Ii]4[hnbl]' IPv4 addresses in host, network, big or little endian order
|
* - '[Ii]4[hnbl]' IPv4 addresses in host, network, big or little endian order
|
||||||
* - 'I6c' for IPv6 addresses printed as specified by
|
* - 'I6c' for IPv6 addresses printed as specified by
|
||||||
* http://tools.ietf.org/html/draft-ietf-6man-text-addr-representation-00
|
* http://tools.ietf.org/html/rfc5952
|
||||||
* - 'U' For a 16 byte UUID/GUID, it prints the UUID/GUID in the form
|
* - 'U' For a 16 byte UUID/GUID, it prints the UUID/GUID in the form
|
||||||
* "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
|
* "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
|
||||||
* Options for %pU are:
|
* Options for %pU are:
|
||||||
|
|
Loading…
Reference in a new issue