The library you’re using has a conflict with the definition of INADDR_NONE
in framework-arduinoespressif32/tools/sdk/include/lwip/lwip/inet.h
. The code in RdUtils/Utils.h
attempts to create a variable with the name INADDR_NONE
but the aforementioned header file already macro-defines it to IPADDR_NONE
which is mapped to ((u32_t)0xffffffffUL)
so the fully extended line looks like
static const unsigned long ((u32_t)0xffffffffUL) = ((unsigned long)0xffffffff);
which is of course invalid code.
My best guess would be that you can comment that line out (lib/RdUtils/Utils.h:26
) and it should cause no problems since INADDR_NONE is still defined and still maps to the constant 0xffffffff
.
To make it more general you can also do it as
#ifndef INADDR_NONE
static const unsigned long INADDR_NONE = ((unsigned long)0xffffffff);
#endif
so that you will provide the value for platforms that don’t predefine INADDR_NONE
, and let the value be for those that have already defined it.