aboutsummaryrefslogtreecommitdiffstats
path: root/io.c
diff options
context:
space:
mode:
authorWayne Davison <wayned@samba.org>2005-04-05 20:07:42 +0000
committerWayne Davison <wayned@samba.org>2005-04-05 20:07:42 +0000
commit626bec8e84cace23b53473d79789f2544a5e85ce (patch)
treeaba6d4513cc17c3fc6de84258e0d55e5b36d0e7c /io.c
parenta06e2b7cab2f16e77e3403bbe8d756806ece186f (diff)
downloadandroid_external_rsync-626bec8e84cace23b53473d79789f2544a5e85ce.tar.gz
android_external_rsync-626bec8e84cace23b53473d79789f2544a5e85ce.tar.bz2
android_external_rsync-626bec8e84cace23b53473d79789f2544a5e85ce.zip
- Added maybe_flush_socket() for use by the generator.
- Always maintain the last_io value for the generator.
Diffstat (limited to 'io.c')
-rw-r--r--io.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/io.c b/io.c
index bdfebafc..fdaa7134 100644
--- a/io.c
+++ b/io.c
@@ -574,7 +574,7 @@ static int read_timeout(int fd, char *buf, size_t len)
len -= n;
ret += n;
- if (io_timeout && fd == sock_f_in)
+ if (fd == sock_f_in && (io_timeout || am_generator))
last_io = time(NULL);
}
@@ -665,6 +665,13 @@ void io_end_buffering(void)
}
+void maybe_flush_socket(void)
+{
+ if (iobuf_out && iobuf_out_cnt && time(NULL) - last_io >= 5)
+ io_flush(NORMAL_FLUSH);
+}
+
+
void maybe_send_keepalive(void)
{
if (time(NULL) - last_io >= allowed_lull) {
@@ -1089,7 +1096,7 @@ static void writefd_unbuffered(int fd,char *buf,size_t len)
total += ret;
if (fd == sock_f_out) {
- if (io_timeout)
+ if (io_timeout || am_generator)
last_io = time(NULL);
sleep_for_bwlimit(ret);
}