summaryrefslogtreecommitdiffstats
path: root/src/usr
diff options
context:
space:
mode:
authorMichael Brown2013-12-05 02:52:34 +0100
committerMichael Brown2013-12-05 02:53:25 +0100
commit2f1c7e386b79d9c4d78706d8a8f169b753e6bc5a (patch)
treebd52cdba24a1d732da860f9d52eab47662d65922 /src/usr
parent[syslog] Add support for IPv6 syslog server (diff)
downloadipxe-2f1c7e386b79d9c4d78706d8a8f169b753e6bc5a.tar.gz
ipxe-2f1c7e386b79d9c4d78706d8a8f169b753e6bc5a.tar.xz
ipxe-2f1c7e386b79d9c4d78706d8a8f169b753e6bc5a.zip
[ipv6] Add support for resolving IPv6 addresses via the "nslookup" command
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/usr')
-rw-r--r--src/usr/nslookup.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/usr/nslookup.c b/src/usr/nslookup.c
index 66818d11..eb2b08b4 100644
--- a/src/usr/nslookup.c
+++ b/src/usr/nslookup.c
@@ -71,6 +71,7 @@ static void nslookup_close ( struct nslookup *nslookup, int rc ) {
static void nslookup_resolv_done ( struct nslookup *nslookup,
struct sockaddr *sa ) {
struct sockaddr_in *sin;
+ struct sockaddr_in6 *sin6;
const struct setting_type *default_type;
struct settings *settings;
struct setting setting;
@@ -86,6 +87,12 @@ static void nslookup_resolv_done ( struct nslookup *nslookup,
len = sizeof ( sin->sin_addr );
default_type = &setting_type_ipv4;
break;
+ case AF_INET6:
+ sin6 = ( ( struct sockaddr_in6 * ) sa );
+ data = &sin6->sin6_addr;
+ len = sizeof ( sin6->sin6_addr );
+ default_type = &setting_type_ipv6;
+ break;
default:
rc = -ENOTSUP;
goto err;