Matt McCutchen's Web Site
/
rsync
/
rsync.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
no space after -I or Tru64 barfs
[rsync/rsync.git]
/
io.c
diff --git
a/io.c
b/io.c
index
894e05a
..
7aee347
100644
(file)
--- a/
io.c
+++ b/
io.c
@@
-48,6
+48,8
@@
static void check_timeout(void)
{
extern int am_server, am_daemon;
time_t t;
{
extern int am_server, am_daemon;
time_t t;
+
+ err_list_push();
if (!io_timeout) return;
if (!io_timeout) return;
@@
-179,8
+181,8
@@
static int read_timeout(int fd, char *buf, int len)
if (eof_error) {
rprintf(FERROR,
"%s: connection to server unexpectedly closed"
if (eof_error) {
rprintf(FERROR,
"%s: connection to server unexpectedly closed"
- " (%
ld
bytes read so far)\n",
- RSYNC_NAME, stats.total_read);
+ " (%
.0f
bytes read so far)\n",
+ RSYNC_NAME,
(double)
stats.total_read);
}
exit_cleanup(RERR_STREAMIO);
}
}
exit_cleanup(RERR_STREAMIO);
}
@@
-339,6
+341,8
@@
static void writefd_unbuffered(int fd,char *buf,int len)
int fd_count, count;
struct timeval tv;
int fd_count, count;
struct timeval tv;
+ err_list_push();
+
no_flush++;
while (total < len) {
no_flush++;
while (total < len) {
@@
-377,7
+381,6
@@
static void writefd_unbuffered(int fd,char *buf,int len)
if (FD_ISSET(fd, &w_fds)) {
int ret, n = len-total;
if (FD_ISSET(fd, &w_fds)) {
int ret, n = len-total;
-
ret = write(fd,buf+total,n);
if (ret == -1 && errno == EINTR) {
ret = write(fd,buf+total,n);
if (ret == -1 && errno == EINTR) {
@@
-462,6
+465,9
@@
static void mplex_write(int fd, enum logcode code, char *buf, int len)
void io_flush(void)
{
int fd = multiplex_out_fd;
void io_flush(void)
{
int fd = multiplex_out_fd;
+
+ err_list_push();
+
if (!io_buffer_count || no_flush) return;
if (io_multiplexing_out) {
if (!io_buffer_count || no_flush) return;
if (io_multiplexing_out) {
@@
-483,21
+489,12
@@
void io_end_buffering(int fd)
}
}
}
}
-/* some OSes have a bug where an exit causes the pending writes on
- a socket to be flushed. Do an explicit shutdown to try to prevent this */
-void io_shutdown(void)
-{
- if (multiplex_out_fd != -1) close(multiplex_out_fd);
- if (io_error_fd != -1) close(io_error_fd);
- multiplex_out_fd = -1;
- io_error_fd = -1;
-}
-
-
static void writefd(int fd,char *buf,int len)
{
stats.total_written += len;
static void writefd(int fd,char *buf,int len)
{
stats.total_written += len;
+ err_list_push();
+
if (!io_buffer || fd != multiplex_out_fd) {
writefd_unbuffered(fd, buf, len);
return;
if (!io_buffer || fd != multiplex_out_fd) {
writefd_unbuffered(fd, buf, len);
return;
@@
-635,14
+632,6
@@
int io_multiplex_write(enum logcode code, char *buf, int len)
return 1;
}
return 1;
}
-/* write a message to the special error fd */
-int io_error_write(int f, enum logcode code, char *buf, int len)
-{
- if (f == -1) return 0;
- mplex_write(f, code, buf, len);
- return 1;
-}
-
/* stop output multiplexing */
void io_multiplexing_close(void)
{
/* stop output multiplexing */
void io_multiplexing_close(void)
{