Skip to content

Commit 39bb081

Browse files
authored
Merge branch 'master' into bug-esp8266#3795
2 parents 626879d + bec6a4d commit 39bb081

File tree

2 files changed

+29
-3
lines changed

2 files changed

+29
-3
lines changed

libraries/ESP8266NetBIOS/ESP8266NetBIOS.cpp

+19-2
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,12 @@ extern "C" {
1717

1818
#define NBNSQ_TYPE_NB (0x0020)
1919
#define NBNSQ_CLASS_IN (0x0001)
20+
#ifndef LWIP_PLATFORM_HTONS
21+
#define LWIP_PLATFORM_HTONS(_n) ((u16_t)((((_n) & 0xff) << 8) | (((_n) >> 8) & 0xff)))
22+
#endif
23+
#ifndef LWIP_PLATFORM_HTONL
24+
#define LWIP_PLATFORM_HTONL(_n) ((u32_t)( (((_n) & 0xff) << 24) | (((_n) & 0xff00) << 8) | (((_n) >> 8) & 0xff00) | (((_n) >> 24) & 0xff) ))
25+
#endif
2026

2127
// Definice struktury NBNS dotazu (alespon veci, ktere jsem vypozoroval):
2228
struct NBNSQUESTION {
@@ -140,7 +146,7 @@ bool ESP8266NetBIOS::begin(const char *name)
140146
}
141147

142148
// presuneme jmeno zarizeni se soucasnou upravou na UPPER case
143-
for (int i = 0; i < n; ++i) {
149+
for (size_t i = 0; i < n; ++i) {
144150
_name[i] = toupper(name[i]);
145151
}
146152
_name[n] = '\0';
@@ -168,8 +174,15 @@ void ESP8266NetBIOS::end()
168174
}
169175
}
170176

171-
void ESP8266NetBIOS::_recv(udp_pcb *upcb, pbuf *pb, ip_addr_t *addr, u16_t port)
177+
#if LWIP_VERSION_MAJOR == 1
178+
void ESP8266NetBIOS::_recv(udp_pcb *upcb, pbuf *pb, ip_addr_t *addr, uint16_t port)
179+
#else
180+
void ESP8266NetBIOS::_recv(udp_pcb *upcb, pbuf *pb, const ip_addr_t *addr, uint16_t port)
181+
#endif
172182
{
183+
(void)upcb;
184+
(void)addr;
185+
(void)port;
173186
while(pb != NULL) {
174187
uint8_t * data = (uint8_t*)((pb)->payload);
175188
size_t len = pb->len;
@@ -256,7 +269,11 @@ void ESP8266NetBIOS::_recv(udp_pcb *upcb, pbuf *pb, ip_addr_t *addr, u16_t port)
256269
}
257270
}
258271

272+
#if LWIP_VERSION_MAJOR == 1
259273
void ESP8266NetBIOS::_s_recv(void *arg, udp_pcb *upcb, pbuf *p, struct ip_addr *addr, uint16_t port)
274+
#else
275+
void ESP8266NetBIOS::_s_recv(void *arg, udp_pcb *upcb, pbuf *p, const ip_addr_t *addr, uint16_t port)
276+
#endif
260277
{
261278
reinterpret_cast<ESP8266NetBIOS*>(arg)->_recv(upcb, p, addr, port);
262279
}

libraries/ESP8266NetBIOS/ESP8266NetBIOS.h

+10-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22
#ifndef __ESPNBNS_h__
33
#define __ESPNBNS_h__
44

5+
extern "C" {
6+
#include "lwip/init.h" // LWIP_VERSION_
7+
#include <lwip/ip_addr.h>
8+
}
59
#include <ESP8266WiFi.h>
610

711
#define NBNS_PORT 137
@@ -15,7 +19,6 @@
1519

1620
struct udp_pcb;
1721
struct pbuf;
18-
struct ip_addr;
1922

2023
class ESP8266NetBIOS
2124
{
@@ -24,8 +27,14 @@ class ESP8266NetBIOS
2427
char _name[NBNS_MAX_HOSTNAME_LEN + 1];
2528
void _getnbname(char *nbname, char *name, uint8_t maxlen);
2629
void _makenbname(char *name, char *nbname, uint8_t outlen);
30+
31+
#if LWIP_VERSION_MAJOR == 1
2732
void _recv(udp_pcb *upcb, pbuf *pb, struct ip_addr *addr, uint16_t port);
2833
static void _s_recv(void *arg, udp_pcb *upcb, pbuf *p, struct ip_addr *addr, uint16_t port);
34+
#else
35+
void _recv(udp_pcb *upcb, pbuf *pb, const ip_addr_t *addr, uint16_t port);
36+
static void _s_recv(void *arg, udp_pcb *upcb, pbuf *p, const ip_addr_t *addr, uint16_t port);
37+
#endif
2938
public:
3039
ESP8266NetBIOS();
3140
~ESP8266NetBIOS();

0 commit comments

Comments
 (0)