summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorshin <shin@FreeBSD.org>2000-02-19 16:10:16 +0000
committershin <shin@FreeBSD.org>2000-02-19 16:10:16 +0000
commit98f78aba9d0830c72c8bc3a41299b63ac701f87d (patch)
treec2c50f9850955d5a43d78290f1052fd302da52ea
parent64995770850f2ea869f74413a0bebc17df9a6db4 (diff)
downloadFreeBSD-src-98f78aba9d0830c72c8bc3a41299b63ac701f87d.zip
FreeBSD-src-98f78aba9d0830c72c8bc3a41299b63ac701f87d.tar.gz
Change IPv6 scoped addr format again based on recent standard discussion.
Sorry for the flapping, but no change will be done for 4.0 anymore. Official standard will be published around April or later. If different format would be adopted at that time, then support for the new format will be added to the succeeding FreeBSD 4.x. Approved by: jkh
-rw-r--r--lib/libc/net/getaddrinfo.c4
-rw-r--r--lib/libc/net/getnameinfo.c11
-rw-r--r--lib/libipsec/policy_token.l2
-rw-r--r--sbin/setkey/token.l2
-rw-r--r--usr.sbin/setkey/token.l2
5 files changed, 9 insertions, 12 deletions
diff --git a/lib/libc/net/getaddrinfo.c b/lib/libc/net/getaddrinfo.c
index 8b6d6b7..a1f2726 100644
--- a/lib/libc/net/getaddrinfo.c
+++ b/lib/libc/net/getaddrinfo.c
@@ -709,7 +709,7 @@ explore_numeric_scope(pai, hostname, servname, res)
switch (pai->ai_family) {
#ifdef INET6
case AF_INET6:
- scope = if_nametoindex(hostname2);
+ scope = if_nametoindex(cp);
if (scope == 0) {
error = EAI_SYSTEM;
goto free;
@@ -718,7 +718,7 @@ explore_numeric_scope(pai, hostname, servname, res)
#endif
}
- error = explore_numeric(pai, cp, servname, res);
+ error = explore_numeric(pai, hostname2, servname, res);
if (error == 0) {
for (cur = *res; cur; cur = cur->ai_next) {
#ifdef INET6
diff --git a/lib/libc/net/getnameinfo.c b/lib/libc/net/getnameinfo.c
index 42f7906..5edcffb 100644
--- a/lib/libc/net/getnameinfo.c
+++ b/lib/libc/net/getnameinfo.c
@@ -199,14 +199,11 @@ getnameinfo(sa, salen, host, hostlen, serv, servlen, flags)
+ scopelen > hostlen)
return ENI_MEMORY;
/*
- * Shift the host string to allocate
- * space for the scope ID part.
+ * Construct <numeric-addr><delim><scopeid>
*/
- memmove(host + scopelen + 1, host, numaddrlen);
- /* copy the scope ID and the delimiter */
- memcpy(host, ifname, scopelen);
- host[scopelen] = SCOPE_DELIMITER;
- host[scopelen + 1 + numaddrlen] = '\0';
+ memcpy(host + numaddrlen + 1, ifname, scopelen);
+ host[numaddrlen] = SCOPE_DELIMITER;
+ host[numaddrlen + 1 + scopelen] = '\0';
}
}
#endif /* INET6 */
diff --git a/lib/libipsec/policy_token.l b/lib/libipsec/policy_token.l
index 1e7b714..c9737cb 100644
--- a/lib/libipsec/policy_token.l
+++ b/lib/libipsec/policy_token.l
@@ -79,7 +79,7 @@ decstring {digit}+
hexpair {hexdigit}{hexdigit}
hexstring 0[xX]{hexdigit}+
octetstring {octet}({dot}{octet})+
-ipaddress [a-zA-Z0-9:\._][a-zA-Z0-9:\._]*(@{letter}{letter}+)?
+ipaddress [a-zA-Z0-9:\._][a-zA-Z0-9:\._]*(%{letter}{letter}+)?
name {letter}(({letter}|{digit}|{hyphen})*({letter}|{digit}))*
hostname {name}(({dot}{name})+{dot}?)?
diff --git a/sbin/setkey/token.l b/sbin/setkey/token.l
index b75fd45..0154bee 100644
--- a/sbin/setkey/token.l
+++ b/sbin/setkey/token.l
@@ -108,7 +108,7 @@ hexstring 0[xX]{hexdigit}+
octetstring {octet}({dot}{octet})+
ipaddress {ipv4addr}|{ipv6addr}
ipv4addr {digit}{1,3}({dot}{digit}{1,3}){0,3}
-ipv6addr {hexdigit}{0,4}({colon}{hexdigit}{0,4}){2,7}(@{letter}{letter}+)?
+ipv6addr {hexdigit}{0,4}({colon}{hexdigit}{0,4}){2,7}(%{letter}{letter}+)?
ipaddrmask {slash}{digit}{1,3}
ipaddrport {blcl}{decstring}{elcl}
keyword {letter}{letter}+
diff --git a/usr.sbin/setkey/token.l b/usr.sbin/setkey/token.l
index b75fd45..0154bee 100644
--- a/usr.sbin/setkey/token.l
+++ b/usr.sbin/setkey/token.l
@@ -108,7 +108,7 @@ hexstring 0[xX]{hexdigit}+
octetstring {octet}({dot}{octet})+
ipaddress {ipv4addr}|{ipv6addr}
ipv4addr {digit}{1,3}({dot}{digit}{1,3}){0,3}
-ipv6addr {hexdigit}{0,4}({colon}{hexdigit}{0,4}){2,7}(@{letter}{letter}+)?
+ipv6addr {hexdigit}{0,4}({colon}{hexdigit}{0,4}){2,7}(%{letter}{letter}+)?
ipaddrmask {slash}{digit}{1,3}
ipaddrport {blcl}{decstring}{elcl}
keyword {letter}{letter}+
OpenPOWER on IntegriCloud