Hi David, On Thu, Aug 07, 2025 at 07:48:38PM +0100, David CARLIER wrote: > From 51d70fa8f86a224d995d0545fb96adf072fee72d Mon Sep 17 00:00:00 2001 > From: David Carlier <devne...@gmail.com> > Date: Thu, 7 Aug 2025 19:43:39 +0100 > Subject: [PATCH] MINOR: sock: update broken accept4 detection for older > hardwares. > > Some older ARM embedded settings set errno to EPERM instead of ENOSYS > for missing implementations (e.g. Freescale ARM 2.6.35)
Oh that's rather strange, but not completely surprising given that accept4() was still pretty young by then, and probably not supported on all architectures (especially since socket-oriented syscalls are often all behind a sys_socket() call on certain archs). The man says EPERM corresponds to a connection blocked by a firewall, which does not make sense, since the firewall will simply prevent the connection from landing in the queue in the first place. So I guess it's safe to consider accept4() unreliable in such cases. In the worst case, it will just fall back to the regular accept() path anyway so there's no harm. I'll take it, thanks! Wlily