aboutsummaryrefslogtreecommitdiff
path: root/TODO
diff options
context:
space:
mode:
authorAndreas Schneider <asn@samba.org>2015-07-15 15:18:08 +0200
committerAndreas Schneider <asn@samba.org>2015-07-15 15:18:08 +0200
commit00eb31542d26c4f4cfb245a58795fcaf5653c953 (patch)
tree06c417833ac0762f27cbc2171515065a1e7a3c7b /TODO
parentc12981efec6967480a15e24a1ee9fa188365f85e (diff)
downloadsocket_wrapper-00eb31542d26c4f4cfb245a58795fcaf5653c953.tar.gz
socket_wrapper-00eb31542d26c4f4cfb245a58795fcaf5653c953.tar.xz
socket_wrapper-00eb31542d26c4f4cfb245a58795fcaf5653c953.zip
Update TODO
Diffstat (limited to 'TODO')
-rw-r--r--TODO20
1 files 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: