]> git.ipfire.org Git - thirdparty/haproxy.git/commit
MAJOR: remove the stream interface and task management code from sock_*
authorWilly Tarreau <wtarreau@exceliance.fr>
Mon, 23 Jul 2012 16:24:25 +0000 (18:24 +0200)
committerWilly Tarreau <w@1wt.eu>
Sun, 2 Sep 2012 19:53:08 +0000 (21:53 +0200)
commitfd31e53139fa8d55c68ecf6f5a82443e8715f354
tree421bd72a31db4e5d057adc6d406d2040502b0b8c
parent076be25ab8ab1a016d9a55c7de7c2a210617716c
MAJOR: remove the stream interface and task management code from sock_*

The socket data layer code must only focus on moving data between a
socket and a buffer. We need a special stream interface handler to
update the stream interface and the file descriptor status.

At the moment the code works but suffers from a race condition caused
by its API : the read/write callbacks still make use of the fd instead
of using the connection. And when a double shutdown is performed, a call
to ->write() after ->read() processed an error results in dereferencing
a NULL fdtab[]->owner. This is only a temporary issue which doesn't need
to be fixed now since this will automatically go away when the functions
change to use the connection instead.
include/proto/stream_interface.h
include/types/connection.h
src/connection.c
src/proto_tcp.c
src/session.c
src/sock_raw.c
src/stream_interface.c