From 28783abbe2fcad41c10153bb3f0a15aaf908bd8a Mon Sep 17 00:00:00 2001 From: sg Date: Wed, 11 Feb 2015 21:36:46 +0100 Subject: [PATCH] fixed bug #43094 "The function tcpip_input() forget to handle IPv6" --- CHANGELOG | 3 +++ src/api/tcpip.c | 7 ++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/CHANGELOG b/CHANGELOG index a3f7f73b..6b8e349d 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -163,6 +163,9 @@ HISTORY ++ Bugfixes: + 2015-02-11: patch by hichard + * tcpip.c: fixed bug #43094 "The function tcpip_input() forget to handle IPv6" + 2014-02-10: Simon Goldschmidt * netconn API: fixed that netconn_close/netconn_delete still used message passing for LWIP_TCPIP_CORE_LOCKING==1 diff --git a/src/api/tcpip.c b/src/api/tcpip.c index c9fa89d8..fc8a7867 100644 --- a/src/api/tcpip.c +++ b/src/api/tcpip.c @@ -115,7 +115,7 @@ tcpip_thread(void *arg) } else #endif /* LWIP_ETHERNET */ #if LWIP_IPV6 - if ((*((unsigned char *)(msg->msg.inp.p->payload)) & 0xf0) == 0x60) { + if (((*(u8_t*)(msg->msg.inp.p->payload)) & 0xf0) == 0x60) { ip6_input(msg->msg.inp.p, msg->msg.inp.netif); } else #endif /* LWIP_IPV6 */ @@ -192,6 +192,11 @@ tcpip_input(struct pbuf *p, struct netif *inp) ret = ethernet_input(p, inp); } else #endif /* LWIP_ETHERNET */ +#if LWIP_IPV6 + if (((*(u8_t*)(p->payload)) & 0xf0) == 0x60) { + ret = ip6_input(p, inp); + } else +#endif /* LWIP_IPV6 */ { ret = ip_input(p, inp); }