summaryrefslogtreecommitdiffstats
path: root/freebsd/sbin/ifconfig/af_inet6.c
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2018-08-07 12:12:37 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2018-09-21 10:29:36 +0200
commitde261e0404e1fe54544275fc57d5b982df4f42b4 (patch)
tree856cbdf23d6809b99c4d642d066bc45cd67c26e6 /freebsd/sbin/ifconfig/af_inet6.c
parentlibbsd.txt: Use rtems_bsd_ifconfig_lo0() (diff)
downloadrtems-libbsd-de261e0404e1fe54544275fc57d5b982df4f42b4.tar.bz2
Update to FreeBSD head 2017-06-01
Git mirror commit dfb26efac4ce9101dda240e94d9ab53f80a9e131. Update #3472.
Diffstat (limited to 'freebsd/sbin/ifconfig/af_inet6.c')
-rw-r--r--freebsd/sbin/ifconfig/af_inet6.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/freebsd/sbin/ifconfig/af_inet6.c b/freebsd/sbin/ifconfig/af_inet6.c
index 2dc372a6..173d804d 100644
--- a/freebsd/sbin/ifconfig/af_inet6.c
+++ b/freebsd/sbin/ifconfig/af_inet6.c
@@ -47,7 +47,6 @@ static const char rcsid[] =
#include <net/if.h>
#include <err.h>
-#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -348,8 +347,7 @@ in6_getaddr(const char *cs, int which)
if (slen < sizeof(s) - 1 ) {
memcpy(s, cs, slen + 1);
} else {
- error = ENAMETOOLONG;
- goto done;
+ errx(1, "%s: address too long", cs);
}
newaddr &= 1;
@@ -370,13 +368,14 @@ in6_getaddr(const char *cs, int which)
bzero(&hints, sizeof(struct addrinfo));
hints.ai_family = AF_INET6;
error = getaddrinfo(s, NULL, &hints, &res);
+ if (error != 0) {
+ if (inet_pton(AF_INET6, s, &sin->sin6_addr) != 1)
+ errx(1, "%s: bad value", s);
+ } else {
+ bcopy(res->ai_addr, sin, res->ai_addrlen);
+ freeaddrinfo(res);
+ }
}
-done:
- if (error != 0) {
- if (inet_pton(AF_INET6, cs, &sin->sin6_addr) != 1)
- errx(1, "%s: bad value", cs);
- } else
- bcopy(res->ai_addr, sin, res->ai_addrlen);
}
static int