libc: sync 'listen' socket fs control file

Fixes #3124
This commit is contained in:
Christian Prochaska 2019-01-18 15:42:32 +01:00 committed by Norman Feske
parent 968e220fd2
commit db9ff821a2

View File

@ -700,6 +700,10 @@ extern "C" int socket_fs_listen(int libc_fd, int backlog)
int const n = write(context->listen_fd(), buf, len);
if (n != len) return Errno(EOPNOTSUPP);
/* sync to block for write completion */
int const res = fsync(context->listen_fd());
if (res != 0) return res;
context->state(Context::ACCEPT_ONLY);
return 0;
}