summaryrefslogtreecommitdiffstats
path: root/src/net/ipv6.c
diff options
context:
space:
mode:
authorMichael Brown2014-05-23 14:36:35 +0200
committerMichael Brown2014-05-23 15:11:17 +0200
commit3a1adea0360e73c91ebed63b671303601a63b450 (patch)
treefde70eb18a8676b450feea050fd7e1f342d3f09f /src/net/ipv6.c
parent[ipv6] Do not set sin6_scope_id on source address (diff)
downloadipxe-3a1adea0360e73c91ebed63b671303601a63b450.tar.gz
ipxe-3a1adea0360e73c91ebed63b671303601a63b450.tar.xz
ipxe-3a1adea0360e73c91ebed63b671303601a63b450.zip
[ipv6] Include network device when transcribing multicast addresses
Destination multicast addresses require a sin6_scope_id, which should therefore be transcribed to a network device name by ipv6_sock_ntoa(). Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/net/ipv6.c')
-rw-r--r--src/net/ipv6.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/net/ipv6.c b/src/net/ipv6.c
index f753751d..77124940 100644
--- a/src/net/ipv6.c
+++ b/src/net/ipv6.c
@@ -900,7 +900,7 @@ static const char * ipv6_sock_ntoa ( struct sockaddr *sa ) {
const char *netdev_name;
/* Identify network device, if applicable */
- if ( IN6_IS_ADDR_LINKLOCAL ( in ) ) {
+ if ( IN6_IS_ADDR_LINKLOCAL ( in ) || IN6_IS_ADDR_MULTICAST ( in ) ) {
netdev = find_netdev_by_index ( sin6->sin6_scope_id );
netdev_name = ( netdev ? netdev->name : "UNKNOWN" );
} else {