libc_lwip: 'fcntl()' fix

Fixes #1273
This commit is contained in:
Christian Prochaska 2014-10-06 15:37:46 +02:00 committed by Christian Helmuth
parent 1e424a6fd2
commit 2db563ebdd
1 changed files with 5 additions and 1 deletions

View File

@ -321,7 +321,11 @@ int Plugin::fcntl(Libc::File_descriptor *sockfdo, int cmd, long val)
switch (cmd) {
case F_GETFL:
case F_SETFL:
result = lwip_fcntl(s, cmd, (val & O_NONBLOCK) ? -1 : O_NONBLOCK);
/*
* lwip_fcntl() supports only the 'O_NONBLOCK' flag and only if
* no other flag is set.
*/
result = lwip_fcntl(s, cmd, val & O_NONBLOCK);
break;
default:
PERR("unsupported fcntl() request: %d", cmd);