On 4/27/25 19:05, Cy Schubert wrote:
The branch main has been updated by cy:
URL:
https://cgit.FreeBSD.org/src/commit/?id=8c7149c73f8f2301369f271c98470b72973b0c01
commit 8c7149c73f8f2301369f271c98470b72973b0c01
Author: Marek Zarychta <zarych...@plan-b.pwste.edu.pl>
AuthorDate: 2025-04-28 00:02:04 +0000
Commit: Cy Schubert <c...@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
---
It looks like we really only invoke interface ('i' group) ioctls on this
socket, is there any particular reason we didn't just use a PF_LOCAL
socket? It'd be less complex and match what ifconfig does for a lot of
its work.
Thanks,
Kyle Evans
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,