Make the socket parser more general
authorBernd Petrovitsch <bernd@firmix.at>
Mon, 6 Oct 2008 23:35:06 +0000 (01:35 +0200)
committerBernd Petrovitsch <bernd@firmix.at>
Mon, 6 Oct 2008 23:35:06 +0000 (01:35 +0200)
commitc8c6519b3be862f88c3d20b8eefc65fff17ae83c
tree66df1bfa24357dd3e6257aa67a780d400501a034
parent337393bf0a9f43c67acb6bb9e697a4efaa81327b
Make the socket parser more general

The general goal is to get to a flexible central event loop to allow
decoupling of long time actions (e.g. a slow browser over a slow
connection) from the rest.

We extend the central select() loop to get an additional select() for
file descriptors where the data will be handled immediately.
We do this via an additional callback function (as to not disturb the
current ones).
The caller must also specify, if he wants to be called on a possible
read andor write on the "immediate" and/or the "pollrate" callback
function.
While we're at it, we add a "void *" which is passed back to the caller.
So the caller can actually register more than one instance on different
file descriptors and differentiate the instances via that pointer. E.g.
the httpinfo plugin is now able to really accept more than one client
connection at the same time.
12 files changed:
lib/dot_draw/src/olsrd_dot_draw.c
lib/httpinfo/src/olsrd_httpinfo.c
lib/pgraph/src/olsrd_pgraph.c
lib/txtinfo/src/olsrd_txtinfo.c
src/ipc_frontend.c
src/main.c
src/parser.c
src/parser.h
src/socket_parser.c
src/socket_parser.h
src/unix/ifnet.c
src/win32/ifnet.c