Browse Source

don't try to flush if there is nothing to flush

zlib reports Z_BUF_ERROR when a flush is attempted without any activity
since the previous flush (if any). while this is harmless as such,
discerning the condition from genuine errors would be much harder than
avoiding the pointless flush in the first place.

REFMAIL: eb5681612f17be777bc8d138d31dd6d6@mpcjanssen.nl
Oswald Buddenhagen 10 năm trước cách đây
mục cha
commit
ef70bd4a40
1 tập tin đã thay đổi với 1 bổ sung1 xóa
  1. 1 1
      src/socket.c

+ 1 - 1
src/socket.c

@@ -812,7 +812,7 @@ socket_write( conn_t *conn, conn_iovec_t *iov, int iovcnt )
 
 	for (i = 0; i < iovcnt; i++)
 		total += iov[i].len;
-	if (total >= WRITE_CHUNK_SIZE) {
+	if (total >= WRITE_CHUNK_SIZE && pending_wakeup( &conn->fd_fake )) {
 		/* If the new data is too big, queue the pending buffer to avoid latency. */
 		do_flush( conn );
 	}