len -= n;
ret += n;
- if (io_timeout && fd == sock_f_in)
+ if (fd == sock_f_in && (io_timeout || am_generator))
last_io = time(NULL);
}
}
+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) {
static size_t remaining;
static size_t iobuf_in_ndx;
int tag, ret = 0;
- char line[MAXPATHLEN+1];
+#if MAXPATHLEN < 4096
+ char line[4096+1024];
+#else
+ char line[MAXPATHLEN+1024];
+#endif
if (!iobuf_in || fd != sock_f_in)
return read_timeout(fd, buf, len);
total += ret;
if (fd == sock_f_out) {
- if (io_timeout)
+ if (io_timeout || am_generator)
last_io = time(NULL);
sleep_for_bwlimit(ret);
}