/* Don't write errors on a dead socket. */
if (fd == sock_f_in)
- io_multiplexing_close();
+ close_multiplexing_out();
rsyserr(FERROR, errno, "read error");
exit_cleanup(RERR_STREAMIO);
}
/* Don't try to write errors back across the stream. */
if (fd == sock_f_out)
- io_multiplexing_close();
+ close_multiplexing_out();
rsyserr(FERROR, errno,
"writefd_unbuffered failed to write %ld bytes: phase \"%s\"",
(long)len, io_write_phase);
/* If the other side is sending us error messages, try
* to grab any messages they sent before they died. */
- while (fd == sock_f_out && am_sender) {
+ while (fd == sock_f_out && io_multiplexing_in) {
io_timeout = 30;
readfd_unbuffered(sock_f_in, io_filesfrom_buf,
sizeof io_filesfrom_buf);
return 1;
}
+void close_multiplexing_in(void)
+{
+ io_multiplexing_in = 0;
+}
+
/** Stop output multiplexing. */
-void io_multiplexing_close(void)
+void close_multiplexing_out(void)
{
io_multiplexing_out = 0;
}