From 00eb31542d26c4f4cfb245a58795fcaf5653c953 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Wed, 15 Jul 2015 15:18:08 +0200 Subject: Update TODO --- TODO | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/TODO b/TODO index fe05c75..147c166 100644 --- a/TODO +++ b/TODO @@ -9,13 +9,19 @@ look at the list below. Library: --------- -* Add support for fd passing in sendmsg/recvmsg. - Scenario: - We accept a connection from a client and need to pass the fd to another - child we forked. socket_wrapper then needs to send the 'struct socket_info' - to the child first and set it up there. - Or do it like swrap_accept() and call getpeername() and getsockname(). -* Add support for threading. +Goals: +* Thread safety +* The proposed way ==> - fd-passing for tcp sockets (for free) + Approach: + - tdb "in small". So a "db file". + - for each socket an entry in the db file + (file, mmap, robust mutex. e.g. one file per local ip addr) + - socket_info : structure in db. protected by pthread robust mutexes + - socket_info_fd : --> pointer into mmap area of db + - free-list + - fd-passing: pass index in array + - the last element we pass is not a fd but the index number in the + mmaped file * Use realpath() in socket_wrapper_dir(). Testing: -- cgit