From 49dde9d8e10bd272c8e0c96bc68d4e9074c6f883 Mon Sep 17 00:00:00 2001 From: luc lebosse Date: Sun, 12 Nov 2017 14:47:33 +0100 Subject: [PATCH 1/2] Fix to compile with lwip V2 --- libraries/ESP8266NetBIOS/ESP8266NetBIOS.cpp | 16 +++++++++++++++- libraries/ESP8266NetBIOS/ESP8266NetBIOS.h | 14 ++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/libraries/ESP8266NetBIOS/ESP8266NetBIOS.cpp b/libraries/ESP8266NetBIOS/ESP8266NetBIOS.cpp index 98c77f7d30..dd01cc8ad1 100755 --- a/libraries/ESP8266NetBIOS/ESP8266NetBIOS.cpp +++ b/libraries/ESP8266NetBIOS/ESP8266NetBIOS.cpp @@ -17,6 +17,12 @@ extern "C" { #define NBNSQ_TYPE_NB (0x0020) #define NBNSQ_CLASS_IN (0x0001) +#ifndef LWIP_PLATFORM_HTONS +#define LWIP_PLATFORM_HTONS(_n) ((u16_t)((((_n) & 0xff) << 8) | (((_n) >> 8) & 0xff))) +#endif +#ifndef LWIP_PLATFORM_HTONL +#define LWIP_PLATFORM_HTONL(_n) ((u32_t)( (((_n) & 0xff) << 24) | (((_n) & 0xff00) << 8) | (((_n) >> 8) & 0xff00) | (((_n) >> 24) & 0xff) )) +#endif // Definice struktury NBNS dotazu (alespon veci, ktere jsem vypozoroval): struct NBNSQUESTION { @@ -168,7 +174,11 @@ void ESP8266NetBIOS::end() } } -void ESP8266NetBIOS::_recv(udp_pcb *upcb, pbuf *pb, ip_addr_t *addr, u16_t port) +#if LWIP_VERSION_MAJOR == 1 +void ESP8266NetBIOS::_recv(udp_pcb *upcb, pbuf *pb, ip_addr_t *addr, uint16_t port) +#else +void ESP8266NetBIOS::_recv(udp_pcb *upcb, pbuf *pb, const ip_addr_t *addr, uint16_t port) +#endif { while(pb != NULL) { uint8_t * data = (uint8_t*)((pb)->payload); @@ -256,7 +266,11 @@ void ESP8266NetBIOS::_recv(udp_pcb *upcb, pbuf *pb, ip_addr_t *addr, u16_t port) } } +#if LWIP_VERSION_MAJOR == 1 void ESP8266NetBIOS::_s_recv(void *arg, udp_pcb *upcb, pbuf *p, struct ip_addr *addr, uint16_t port) +#else +void ESP8266NetBIOS::_s_recv(void *arg, udp_pcb *upcb, pbuf *p, const ip_addr_t *addr, uint16_t port) +#endif { reinterpret_cast(arg)->_recv(upcb, p, addr, port); } diff --git a/libraries/ESP8266NetBIOS/ESP8266NetBIOS.h b/libraries/ESP8266NetBIOS/ESP8266NetBIOS.h index 0fad651f28..9c96d442a8 100755 --- a/libraries/ESP8266NetBIOS/ESP8266NetBIOS.h +++ b/libraries/ESP8266NetBIOS/ESP8266NetBIOS.h @@ -2,6 +2,9 @@ #ifndef __ESPNBNS_h__ #define __ESPNBNS_h__ +extern "C" { +#include "lwip/init.h" // LWIP_VERSION_ +} #include #define NBNS_PORT 137 @@ -15,7 +18,12 @@ struct udp_pcb; struct pbuf; +#if LWIP_VERSION_MAJOR == 1 struct ip_addr; +#else +struct ip4_addr; +typedef ip4_addr_t ip_addr_t; +#endif class ESP8266NetBIOS { @@ -24,8 +32,14 @@ class ESP8266NetBIOS char _name[NBNS_MAX_HOSTNAME_LEN + 1]; void _getnbname(char *nbname, char *name, uint8_t maxlen); void _makenbname(char *name, char *nbname, uint8_t outlen); + +#if LWIP_VERSION_MAJOR == 1 void _recv(udp_pcb *upcb, pbuf *pb, struct ip_addr *addr, uint16_t port); static void _s_recv(void *arg, udp_pcb *upcb, pbuf *p, struct ip_addr *addr, uint16_t port); +#else + void _recv(udp_pcb *upcb, pbuf *pb, const ip_addr_t *addr, uint16_t port); + static void _s_recv(void *arg, udp_pcb *upcb, pbuf *p, const ip_addr_t *addr, uint16_t port); +#endif public: ESP8266NetBIOS(); ~ESP8266NetBIOS(); From dc369d9713e69a859ad836f588804a104fff8767 Mon Sep 17 00:00:00 2001 From: luc lebosse Date: Fri, 17 Nov 2017 21:07:02 +0100 Subject: [PATCH 2/2] Add changes suggested --- libraries/ESP8266NetBIOS/ESP8266NetBIOS.cpp | 5 ++++- libraries/ESP8266NetBIOS/ESP8266NetBIOS.h | 7 +------ 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/libraries/ESP8266NetBIOS/ESP8266NetBIOS.cpp b/libraries/ESP8266NetBIOS/ESP8266NetBIOS.cpp index dd01cc8ad1..896e031fdd 100755 --- a/libraries/ESP8266NetBIOS/ESP8266NetBIOS.cpp +++ b/libraries/ESP8266NetBIOS/ESP8266NetBIOS.cpp @@ -146,7 +146,7 @@ bool ESP8266NetBIOS::begin(const char *name) } // presuneme jmeno zarizeni se soucasnou upravou na UPPER case - for (int i = 0; i < n; ++i) { + for (size_t i = 0; i < n; ++i) { _name[i] = toupper(name[i]); } _name[n] = '\0'; @@ -180,6 +180,9 @@ void ESP8266NetBIOS::_recv(udp_pcb *upcb, pbuf *pb, ip_addr_t *addr, uint16_t po void ESP8266NetBIOS::_recv(udp_pcb *upcb, pbuf *pb, const ip_addr_t *addr, uint16_t port) #endif { + (void)upcb; + (void)addr; + (void)port; while(pb != NULL) { uint8_t * data = (uint8_t*)((pb)->payload); size_t len = pb->len; diff --git a/libraries/ESP8266NetBIOS/ESP8266NetBIOS.h b/libraries/ESP8266NetBIOS/ESP8266NetBIOS.h index 9c96d442a8..1c5b1d9699 100755 --- a/libraries/ESP8266NetBIOS/ESP8266NetBIOS.h +++ b/libraries/ESP8266NetBIOS/ESP8266NetBIOS.h @@ -4,6 +4,7 @@ extern "C" { #include "lwip/init.h" // LWIP_VERSION_ +#include } #include @@ -18,12 +19,6 @@ extern "C" { struct udp_pcb; struct pbuf; -#if LWIP_VERSION_MAJOR == 1 -struct ip_addr; -#else -struct ip4_addr; -typedef ip4_addr_t ip_addr_t; -#endif class ESP8266NetBIOS {