From: Wouter Wijngaards Date: Tue, 15 Jun 2010 09:40:36 +0000 (+0000) Subject: - Fix TCPreply on systems with no writev, if just 1 byte could be sent. X-Git-Tag: release-1.4.6rc1~50 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6070d6107648a52b644920a97c8d13f16678895c;p=thirdparty%2Funbound.git - Fix TCPreply on systems with no writev, if just 1 byte could be sent. git-svn-id: file:///svn/unbound/trunk@2149 be551aaa-1e26-0410-a405-d3ace91eadb9 --- diff --git a/doc/Changelog b/doc/Changelog index 30e28c9ec..43b3a4af2 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,6 +1,7 @@ 15 June 2010: Wouter - tag 1.4.5 created. - trunk contains 1.4.6 in development. + - Fix TCPreply on systems with no writev, if just 1 byte could be sent. 11 June 2010: Wouter - When retry to parent the retrycount is not wiped, so failed diff --git a/util/netevent.c b/util/netevent.c index 3f3c6ce03..e5a8a4002 100644 --- a/util/netevent.c +++ b/util/netevent.c @@ -923,7 +923,8 @@ comm_point_tcp_handle_write(int fd, struct comm_point* c) log_assert(iov[1].iov_len > 0); r = writev(fd, iov, 2); #else /* HAVE_WRITEV */ - r = send(fd, (void*)&len, sizeof(uint16_t), 0); + r = send(fd, (void*)(((uint8_t*)&len)+c->tcp_byte_count), + sizeof(uint16_t)-c->tcp_byte_count, 0); #endif /* HAVE_WRITEV */ if(r == -1) { #ifndef USE_WINSOCK