if(!eof && (buf->d < buf->s) && ((max < 0) || (sent + buf->d < max))) {
while(1) {
ret = recv(src, buf->b + buf->d, buf->s - buf->d, MSG_DONTWAIT);
if(!eof && (buf->d < buf->s) && ((max < 0) || (sent + buf->d < max))) {
while(1) {
ret = recv(src, buf->b + buf->d, buf->s - buf->d, MSG_DONTWAIT);
struct charbuf inbuf, outbuf;
struct hthead *req, *resp;
off_t dlen, sent;
struct charbuf inbuf, outbuf;
struct hthead *req, *resp;
off_t dlen, sent;
if(dlen > 0)
passdata(fd, cfd, &inbuf, dlen);
}
if(dlen > 0)
passdata(fd, cfd, &inbuf, dlen);
}