mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-12-26 07:26:15 +01:00
gio: don't assume that SOCK_CLOEXEC is supported whenever it's defined
Just because SOCK_CLOEXEC was defined at build time doesn't mean the kernel we're running on supports it. So if socket() fails with EINVAL, try again without the flag. https://bugzilla.gnome.org/show_bug.cgi?id=624463
This commit is contained in:
parent
8a2d157d49
commit
732ff1b27c
@ -455,9 +455,11 @@ g_socket_create_socket (GSocketFamily family,
|
||||
}
|
||||
|
||||
#ifdef SOCK_CLOEXEC
|
||||
native_type |= SOCK_CLOEXEC;
|
||||
fd = socket (family, native_type | SOCK_CLOEXEC, protocol);
|
||||
/* It's possible that libc has SOCK_CLOEXEC but the kernel does not */
|
||||
if (fd < 0 && errno == EINVAL)
|
||||
#endif
|
||||
fd = socket (family, native_type, protocol);
|
||||
fd = socket (family, native_type, protocol);
|
||||
|
||||
if (fd < 0)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user