test_echo_tcp_sendmsg_recvmsg_fd: split out test_tcp_sendmsg_recvmsg_fd_array()
[socket_wrapper.git] / TODO
diff --git a/TODO b/TODO
index 205cfaf3ca6f5dce4ff171f52215e0213d08a1a4..4a851e6490a38f8e44c516d9630ba5fb70bde9eb 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,17 +1,27 @@
 TODO
 =====
 
+This is the TODO list of this project. It should give you some hints of things
+which need to be implemented. If you can spend some time on this project, then
+look at the list below.
+
+
 Library:
 ---------
 
-* Add IP_PKTINFO support for sendmsg/recvmsg.
-* 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:
+* 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:
 ---------
@@ -19,4 +29,3 @@ Testing:
 * Add a test for sento() to broadcast 255.255.255.255.
 * Add a test to check that read/readv/send/ only work on connected sockets.
 * Add unit tests for conversion functions like convert_in_un_remote().
-* Add threaded tests.