git: 8c7149c73f8f - main - wpa_supplicant: Handle systems without INET (legacy IP) support
Date: Mon, 28 Apr 2025 00:05:09 UTC
The branch main has been updated by cy: URL: https://cgit.FreeBSD.org/src/commit/?id=8c7149c73f8f2301369f271c98470b72973b0c01 commit 8c7149c73f8f2301369f271c98470b72973b0c01 Author: Marek Zarychta <zarychtam@plan-b.pwste.edu.pl> AuthorDate: 2025-04-28 00:02:04 +0000 Commit: Cy Schubert <cy@FreeBSD.org> CommitDate: 2025-04-28 00:04:45 +0000 wpa_supplicant: Handle systems without INET (legacy IP) support Currently, wpa_supplicant fails when legacy IP support is disabled in FreeBSD (i.e., the world built with WITHOUT_INET and nooptions INET in the kernel config). The proposed patch allows running wpa_supplicant and connecting to wireless networks without INET support when INET6 is available. Reviewed by: cy, adrian, philip, roy_marples.name Differential Revision: https://reviews.freebsd.org/D49959 --- contrib/wpa/src/drivers/driver_bsd.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/contrib/wpa/src/drivers/driver_bsd.c b/contrib/wpa/src/drivers/driver_bsd.c index 6efaa9c27ff2..d23d720789f9 100644 --- a/contrib/wpa/src/drivers/driver_bsd.c +++ b/contrib/wpa/src/drivers/driver_bsd.c @@ -1800,9 +1800,19 @@ bsd_global_init(void *ctx) global->sock = socket(PF_INET, SOCK_DGRAM | SOCK_CLOEXEC, 0); if (global->sock < 0) { + if (errno == EAFNOSUPPORT) { + wpa_printf(MSG_INFO, "INET not supported, trying INET6..."); + global->sock = socket(PF_INET6, SOCK_DGRAM | SOCK_CLOEXEC, 0); + if (global->sock < 0) { + wpa_printf(MSG_ERROR, "socket[PF_INET6,SOCK_DGRAM]: %s", + strerror(errno)); + goto fail1; + } + } else { wpa_printf(MSG_ERROR, "socket[PF_INET,SOCK_DGRAM]: %s", strerror(errno)); goto fail1; + } } global->route = socket(PF_ROUTE,