Skip to content

Commit

Permalink
package/libwebsockets: add an option to enable lws async dns
Browse files Browse the repository at this point in the history
Lws now features optional asynchronous, ie, nonblocking recursive DNS
resolution done on the event loop, enable `-DLWS_WITH_SYS_ASYNC_DNS=1`
at cmake to build it in.

The default libc name resolution is via libc `getaddrinfo()`, which is
blocking, possibly for quite long periods (seconds).  If you are
taking care about latency, but want to create outgoing connections,
you can't tolerate this exception from the rule that everything in
lws is nonblocking.

Lws' asynchronous DNS resolver creates a caching name resolver
that directly queries the configured nameserver itself over UDP,
from the event loop.

https://libwebsockets.org/lws-api-doc-main/html/md_READMEs_2README_8async-dns.html

Signed-off-by: Bart Van Severen <[email protected]>
Signed-off-by: Thomas Devoogdt <[email protected]>
  • Loading branch information
barcobarvs authored and ThomasDevoogdt committed Oct 19, 2024
1 parent 24ec6b5 commit 50e0b79
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 0 deletions.
6 changes: 6 additions & 0 deletions package/libwebsockets/Config.in
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,12 @@ config BR2_PACKAGE_LIBWEBSOCKETS_EXT_POLL
unconditionally compiled in for library versions
prior to 3.2.0.

config BR2_PACKAGE_LIBWEBSOCKETS_ASYNC_DNS
bool "enable async dns support"
help
Enable asynchronous DNS resolver that directly queries
the configured nameserver over UDP, from the event loop.

endif

comment "libwebsockets needs a toolchain w/ dynamic library"
Expand Down
4 changes: 4 additions & 0 deletions package/libwebsockets/libwebsockets.mk
Original file line number Diff line number Diff line change
Expand Up @@ -98,4 +98,8 @@ ifeq ($(BR2_PACKAGE_LIBWEBSOCKETS_EXT_POLL),y)
LIBWEBSOCKETS_CONF_OPTS += -DLWS_WITH_EXTERNAL_POLL=ON
endif

ifeq ($(BR2_PACKAGE_LIBWEBSOCKETS_ASYNC_DNS),y)
LIBWEBSOCKETS_CONF_OPTS += -DLWS_WITH_SYS_ASYNC_DNS=ON
endif

$(eval $(cmake-package))

0 comments on commit 50e0b79

Please sign in to comment.