From bcab7fb4afcd5c9015f05ce1cce02f9a76928217 Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Sun, 3 Dec 2017 21:43:50 +0100 Subject: ggsn.c: Fix byte order of IPCP IPv4 DNS servers ... this probably didn't show up as 8.8.8.8 is dual-endian. doh! The address was already in network byte order, but msgb_put_u32 "of course" expects host byte order, ending up the wrong way in the actual packets :/ Change-Id: Ia4bcac5fcebfc24760432eb66be258a01d78f65f Closes: OS#2685 --- ggsn/ggsn.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'ggsn') diff --git a/ggsn/ggsn.c b/ggsn/ggsn.c index 4b4a01f..1507c96 100644 --- a/ggsn/ggsn.c +++ b/ggsn/ggsn.c @@ -436,13 +436,13 @@ static int build_ipcp_pco(struct msgb *msg, uint8_t id, const struct in46_addr * if (dns1 && dns1->len == 4) { msgb_put_u8(msg, 0x81); /* DNS1 Tag */ msgb_put_u8(msg, 2 + dns1->len);/* DNS1 Length, incl. TL */ - msgb_put_u32(msg, dns1->v4.s_addr); + msgb_put_u32(msg, ntohl(dns1->v4.s_addr)); } if (dns2 && dns2->len == 4) { msgb_put_u8(msg, 0x83); /* DNS2 Tag */ msgb_put_u8(msg, 2 + dns2->len);/* DNS2 Length, incl. TL */ - msgb_put_u32(msg, dns2->v4.s_addr); + msgb_put_u32(msg, ntohl(dns2->v4.s_addr)); } /* patch in length values */ -- cgit v1.2.3