Index: ossp-pkg/sa/TODO RCS File: /v/ossp/cvs/ossp-pkg/sa/TODO,v rcsdiff -q -kk '-r1.19' '-r1.20' -u '/v/ossp/cvs/ossp-pkg/sa/TODO,v' 2>/dev/null --- TODO 2001/10/10 07:42:26 1.19 +++ TODO 2001/10/10 07:57:29 1.20 @@ -1,13 +1,49 @@ -- support for writev(2) -- perhaps move 1024-buffer of writef into sa_t and make adjustable -- SA_BUFFER_KREAD - SA_BUFFER_KWRITE -- full test suite for whole API +TODO +---- + +o Perhaps move 1024-buffer of writef into sa_t and make adjustable or + even better: provide a sa_mvsnprintf() variant which directly does the + sa_write calls and this way the whole buffering is the SA_BUFFER_WRITE. + This would be exactly what the user would expect. + +o Provide a full test suite for the whole API. + - inet://0.0.0.0:0 -> inet://0.0.0.0:514 - inet://127.0.0.1:514 -> inet://127.0.0.1:514 - inet://localhost:syslog#udp -> inet://127.0.0.1:514 - inet://localhost:smtp -> inet://127.0.0.1:25 - unix:/tmp/socket -> unix:/tmp/socket -- use sa_errorinfo() internally + +o Use sa_errorinfo() internally everywhere where it is reasonable. + +CANDO +----- + +o Support for writev(2). + + This can be done by internally switching to always use writev(2), + providing an emulation for writev(2) ala Pth and by basing the write + calls always on writev. + +o Kernel Read/Write Buffer Adjustments. + + BSD Sockets usually provide (see setsockopt(2)): + + SO_SNDBUF set buffer size for output + SO_RCVBUF set buffer size for input + SO_SNDLOWAT set minimum count for output + SO_RCVLOWAT set minimum count for input + + This would mean that we could also allow the control + of the kernel buffers via + + SA_BUFFER_KREAD + SA_BUFFER_KWRITE + + Unfortunately the whole kernel buffer issue is very complex, because + according to STEVENS there are both minimum and maximum sizes and both + borders heavily depend on the currently used protocol (TCP or UDP) and + the MTU of the underlying network, etc. This all together seems like + opening a can of worms if we provide SA_BUFFER_K{READ,WRITE}.