diff options
author | Andy Green <andy@warmcat.com> | 2023-12-07 05:27:28 +0000 |
---|---|---|
committer | Andy Green <andy@warmcat.com> | 2023-12-07 05:31:25 +0000 |
commit | dab8e1c4f825d3ef8966dba78d0143721df72af4 (patch) | |
tree | 9a915f538828738fabbe52c13700db22eb428301 | |
parent | b391e1141abdb1f46621a67a8f00f0884bf6595a (diff) | |
download | libwebsockets-dab8e1c4f825d3ef8966dba78d0143721df72af4.tar.gz |
mac length: switch to ETHER_ADDR_LEN
Long story, there's also minimal example to take care of.
This change should take care of anything with ETHER_ADDR_LEN in
net/ethernet.h plus windows, for both the lib and example.
-rw-r--r-- | CMakeLists.txt | 2 | ||||
-rw-r--r-- | cmake/lws_config.h.in | 1 | ||||
-rw-r--r-- | cmake/lws_config_private.h.in | 1 | ||||
-rw-r--r-- | include/libwebsockets.h | 7 | ||||
-rw-r--r-- | lib/core-net/wol.c | 10 | ||||
-rw-r--r-- | minimal-examples-lowlevel/raw/minimal-raw-wol/minimal-raw-wol.c | 10 |
6 files changed, 19 insertions, 12 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index c3ef2d78..5156f67f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -660,6 +660,8 @@ CHECK_C_SOURCE_COMPILES("#include <pthread.h>\nvoid main(void) { while(1) ; } vo CHECK_C_SOURCE_COMPILES("#include <inttypes.h>\nvoid main(void) { while(1) ; } void xxexit(void){}" LWS_HAVE_INTTYPES_H) CHECK_C_SOURCE_COMPILES("#include <sys/resource.h>\nvoid main(void) { while(1) ; } void xxexit(void){}" LWS_HAVE_SYS_RESOURCE_H) CHECK_C_SOURCE_COMPILES("#include <linux/ipv6.h>\nvoid main(void) { while(1) ; } void xxexit(void){}" LWS_HAVE_LINUX_IPV6_H) +CHECK_C_SOURCE_COMPILES("#include <net/ethernet.h>\nvoid main(void) { while(1) ; } void xxexit(void){}" LWS_HAVE_NET_ETHERNET_H) + if (LWS_EXT_PTHREAD_INCLUDE_DIR) set(LWS_HAVE_PTHREAD_H 1) diff --git a/cmake/lws_config.h.in b/cmake/lws_config.h.in index f99aee0e..dfd25d52 100644 --- a/cmake/lws_config.h.in +++ b/cmake/lws_config.h.in @@ -165,6 +165,7 @@ #cmakedefine LWS_WITH_DLO #cmakedefine LWS_WITH_DRIVERS #cmakedefine LWS_WITH_ESP32 +#cmakedefine LWS_HAVE_NET_ETHERNET_H #cmakedefine LWS_HAVE_EVBACKEND_LINUXAIO #cmakedefine LWS_HAVE_EVBACKEND_IOURING #cmakedefine LWS_WITH_EXTERNAL_POLL diff --git a/cmake/lws_config_private.h.in b/cmake/lws_config_private.h.in index 2f7500a2..0f28dd40 100644 --- a/cmake/lws_config_private.h.in +++ b/cmake/lws_config_private.h.in @@ -109,3 +109,4 @@ /* Defined if you have the <inttypes.h> header file. */ #cmakedefine LWS_HAVE_INTTYPES_H + diff --git a/include/libwebsockets.h b/include/libwebsockets.h index 05ede8de..379afc82 100644 --- a/include/libwebsockets.h +++ b/include/libwebsockets.h @@ -41,6 +41,12 @@ extern "C" { #if defined(LWS_HAVE_SYS_TYPES_H) && !defined(LWS_PLAT_BAREMETAL) #include <sys/types.h> #endif +#if defined(LWS_HAVE_NET_ETHERNET_H) +#include <net/ethernet.h> +#endif +#if defined(_WIN32) && !defined(ETHER_ADDR_LEN) +#define ETHER_ADDR_LEN 6 +#endif #include <stddef.h> #include <string.h> @@ -288,6 +294,7 @@ typedef int suseconds_t; #define MBEDTLS_CONFIG_FILE <mbedtls/esp_config.h> #endif #endif + #if defined(LWS_WITH_TLS) #include <mbedtls/ssl.h> #include <mbedtls/entropy.h> diff --git a/lib/core-net/wol.c b/lib/core-net/wol.c index 20c939b8..ae0b0373 100644 --- a/lib/core-net/wol.c +++ b/lib/core-net/wol.c @@ -24,15 +24,11 @@ #include "private-lib-core.h" -#if defined(_WIN32) && !defined(IFHWADDRLEN) -#define IFHWADDRLEN 6 -#endif - int lws_wol(struct lws_context *ctx, const char *ip_or_NULL, uint8_t *mac_6_bytes) { int n, m, ofs = 0, fd, optval = 1, ret = 1; - uint8_t pkt[17 * IFHWADDRLEN]; + uint8_t pkt[17 * ETHER_ADDR_LEN]; struct sockaddr_in addr; fd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); @@ -51,10 +47,10 @@ lws_wol(struct lws_context *ctx, const char *ip_or_NULL, uint8_t *mac_6_bytes) * Lay out the magic packet */ - for (n = 0; n < IFHWADDRLEN; n++) + for (n = 0; n < ETHER_ADDR_LEN; n++) pkt[ofs++] = 0xff; for (m = 0; m < 16; m++) - for (n = 0; n < IFHWADDRLEN; n++) + for (n = 0; n < ETHER_ADDR_LEN; n++) pkt[ofs++] = mac_6_bytes[n]; memset(&addr, 0, sizeof(addr)); diff --git a/minimal-examples-lowlevel/raw/minimal-raw-wol/minimal-raw-wol.c b/minimal-examples-lowlevel/raw/minimal-raw-wol/minimal-raw-wol.c index a9b81360..8a9eca67 100644 --- a/minimal-examples-lowlevel/raw/minimal-raw-wol/minimal-raw-wol.c +++ b/minimal-examples-lowlevel/raw/minimal-raw-wol/minimal-raw-wol.c @@ -14,11 +14,11 @@ int main(int argc, const char **argv) { - struct lws_context_creation_info info; - struct lws_context *ctx; - const char *p, *ip = NULL; - uint8_t mac[IFHWADDRLEN]; - int ret = 1; + struct lws_context_creation_info info; + struct lws_context *ctx; + const char *p, *ip = NULL; + uint8_t mac[ETHER_ADDR_LEN]; + int ret = 1; memset(&info, 0, sizeof info); lws_cmdline_option_handle_builtin(argc, argv, &info); |