diff --git a/Kernel/Syscalls/ioctl.cpp b/Kernel/Syscalls/ioctl.cpp index 2d06bffa34..acff91dfd1 100644 --- a/Kernel/Syscalls/ioctl.cpp +++ b/Kernel/Syscalls/ioctl.cpp @@ -26,6 +26,7 @@ #include #include +#include namespace Kernel { @@ -34,6 +35,10 @@ KResultOr Process::sys$ioctl(int fd, unsigned request, FlatPtr arg) auto description = file_description(fd); if (!description) return EBADF; + if (request == FIONBIO && arg != 0) { + description->set_blocking(false); + return KSuccess; + } return description->file().ioctl(*description, request, arg); } diff --git a/Userland/Libraries/LibC/sys/ioctl_numbers.h b/Userland/Libraries/LibC/sys/ioctl_numbers.h index df31bebaf9..345f2d43de 100644 --- a/Userland/Libraries/LibC/sys/ioctl_numbers.h +++ b/Userland/Libraries/LibC/sys/ioctl_numbers.h @@ -68,7 +68,8 @@ enum IOCtlNumber { SIOCSIFNETMASK, SIOCADDRT, SIOCDELRT, - FIBMAP + FIBMAP, + FIONBIO, }; #define TIOCGPGRP TIOCGPGRP @@ -94,3 +95,4 @@ enum IOCtlNumber { #define SIOCADDRT SIOCADDRT #define SIOCDELRT SIOCDELRT #define FIBMAP FIBMAP +#define FIONBIO FIONBIO