if (FD_ISSET(fd, &w_fds)) {
int ret, n = len-total;
- if (n > PIPE_BUF) n = PIPE_BUF;
-
ret = write(fd,buf+total,n?n:1);
if (ret == -1 && errno == EINTR) {
SIVAL(buffer, 0, ((MPLEX_BASE + (int)code)<<24) + len);
- if (n > (sizeof(buf)-4)) {
- n = sizeof(buf)-4;
+ if (n > (sizeof(buffer)-4)) {
+ n = sizeof(buffer)-4;
}
memcpy(&buffer[4], buf, n);
len -= n;
buf += n;
- writefd_unbuffered(fd, buf, len);
+ if (len) {
+ writefd_unbuffered(fd, buf, len);
+ }
}
if (!io_buffer_count || no_flush) return;
if (io_multiplexing_out) {
- mplex_write(fd, 0, io_buffer, io_buffer_count);
+ mplex_write(fd, FNONE, io_buffer, io_buffer_count);
} else {
writefd_unbuffered(fd, io_buffer, io_buffer_count);
}
{
buffer_f_in = -1;
}
+