Index: ossp-pkg/sa/TODO RCS File: /v/ossp/cvs/ossp-pkg/sa/TODO,v rcsdiff -q -kk '-r1.27' '-r1.28' -u '/v/ossp/cvs/ossp-pkg/sa/TODO,v' 2>/dev/null --- TODO 2001/10/26 10:57:28 1.27 +++ TODO 2001/10/31 09:46:06 1.28 @@ -2,6 +2,18 @@ TODO ---- +Oh, finally, a performance issue (that probably doesn't matter for +lmtp2nntp): +sa_rc_t sa_read(sa_t *sa, char *cpBuf, size_t nBufReq, size_t *nBufRes) +always flushes the write portion of the outgoing stream, even if the +read is going to be entirely from the local buffer. This is generally +undesirably behavior, since you can trigger nagle's algorithm if +you're a command/response server with pipelining like LMTP. +Generally, you want to flush the write portion whenever you're about +to block on a read, but not necessarily before. +(Of course, the client-side of a pipelining client is considerably +more complex.) + - on resolving multiple addresses can be returned (especially one IPv4 and one IPv6!) and each one has to be tried on socket+connect for instance. What to do? See also