All of lore.kernel.org
 help / color / mirror / Atom feed
* Possible problem in fcntl
@ 2005-12-13 15:56 Filipe Cabecinhas
  2005-12-13 17:50 ` linux-os (Dick Johnson)
  0 siblings, 1 reply; 5+ messages in thread
From: Filipe Cabecinhas @ 2005-12-13 15:56 UTC (permalink / raw)
  To: linux-kernel; +Cc: Nuno Lopes, Renato Crisóstomo

Hi,

We have written a little webserver for our CS course. But we have a
problem with fcntl.
We are using non-blocking sockets and per fcntl man page:
       On Linux, the new socket returned by accept () does  not  inherit  file
       status  flags such as O_NONBLOCK and O_ASYNC from the listening socket.
       This behaviour differs from the canonical BSD  sockets  implementation.
       Portable  programs should not rely on inheritance or non-inheritance of
       file status flags and always explicitly set all required flags  on  the
       socket returned from accept().

We call fcntl after calling bind and listen. Then we also call fcntl
for each accept'ed connection to set O_NONBLOCK:
				flags = fcntl(e, F_GETFL);
				fcntl(e, F_SETFL, flags | O_NONBLOCK);

$ uname -a
Linux lab9p2 2.6.11.12 #3 Sat Sep 3 20:09:17 WEST 2005 i686 Intel(R)
Pentium(R) 4 CPU 2.26GHz GenuineIntel GNU/Linux
$

The code is at http://mega.ist.utl.pt/~facab/proj/
(files httpd.n.[ch] have the line numbers)
The line that's causing the trouble is line 377 in httpd.c. Commenting
that line fixes the problem (although we think that shouldn't be
necessary).

However, in my laptop (with a different kernel version) it works. So,
does this kernel version (2.6.11.12) has a bug with fcntl or are we
doing something wrong?


Thanks in advance,
Filipe Cabecinhas

P.S: Please CC me, because I'm not subscribed to this list.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2005-12-13 20:42 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-12-13 15:56 Possible problem in fcntl Filipe Cabecinhas
2005-12-13 17:50 ` linux-os (Dick Johnson)
2005-12-13 18:30   ` Filipe Cabecinhas
2005-12-13 18:46     ` linux-os (Dick Johnson)
2005-12-13 20:42       ` Filipe Cabecinhas

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.