From fec127cb07c05bb0497e6bf672179132b8dd5456 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Fri, 25 Oct 2013 13:48:18 +0100 Subject: [PATCH] [ipv6] Treat sin6_scope_id consistently sin6_scope_id is never exposed outside of the local system, and so should be a native-endian quantity. Signed-off-by: Michael Brown --- src/net/ipv6.c | 6 +++--- src/net/ndp.c | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/net/ipv6.c b/src/net/ipv6.c index 4cd67209..dcaad371 100644 --- a/src/net/ipv6.c +++ b/src/net/ipv6.c @@ -386,7 +386,7 @@ static int ipv6_tx ( struct io_buffer *iobuf, sizeof ( iphdr->src ) ); } if ( ( ! IN6_IS_ADDR_MULTICAST ( next_hop ) ) && - ( ( miniroute = ipv6_route ( ntohl ( sin6_dest->sin6_scope_id ), + ( ( miniroute = ipv6_route ( sin6_dest->sin6_scope_id, &next_hop ) ) != NULL ) ) { memcpy ( &iphdr->src, &miniroute->address, sizeof ( iphdr->src ) ); @@ -599,12 +599,12 @@ static int ipv6_rx ( struct io_buffer *iobuf, struct net_device *netdev, src.sin6.sin6_family = AF_INET6; memcpy ( &src.sin6.sin6_addr, &iphdr->src, sizeof ( src.sin6.sin6_addr ) ); - src.sin6.sin6_scope_id = htonl ( netdev->index ); + src.sin6.sin6_scope_id = netdev->index; memset ( &dest, 0, sizeof ( dest ) ); dest.sin6.sin6_family = AF_INET6; memcpy ( &dest.sin6.sin6_addr, &iphdr->dest, sizeof ( dest.sin6.sin6_addr ) ); - dest.sin6.sin6_scope_id = htonl ( netdev->index ); + dest.sin6.sin6_scope_id = netdev->index; iob_pull ( iobuf, hdrlen ); pshdr_csum = ipv6_pshdr_chksum ( iphdr, iob_len ( iobuf ), next_header, TCPIP_EMPTY_CSUM ); diff --git a/src/net/ndp.c b/src/net/ndp.c index cc57478a..c440435d 100644 --- a/src/net/ndp.c +++ b/src/net/ndp.c @@ -119,12 +119,12 @@ static int ndp_tx_request ( struct net_device *netdev, sin6_src.sin6_family = AF_INET6; memcpy ( &sin6_src.sin6_addr, net_source, sizeof ( sin6_src.sin6_addr ) ); - sin6_src.sin6_scope_id = htons ( netdev->index ); + sin6_src.sin6_scope_id = netdev->index; /* Construct multicast destination address */ memset ( &sin6_dest, 0, sizeof ( sin6_dest ) ); sin6_dest.sin6_family = AF_INET6; - sin6_dest.sin6_scope_id = htons ( netdev->index ); + sin6_dest.sin6_scope_id = netdev->index; ipv6_solicited_node ( &sin6_dest.sin6_addr, net_dest ); /* Transmit neighbour discovery packet */