1
From 13c80a6deadcd78e62c66bd8e178ead7d049bed6 Mon Sep 17 00:00:00 2001
2
From: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
3
Date: Sat, 21 Jun 2014 17:02:06 +0200
4
Subject: Workaround a bug in libc on Hurd
6
The send() function, when asked to send 0 characters, doesn't trigger a corresponding recv(), except on Hurd.
8
This breaks the communication between clamd and clamdscan.
10
See: https://bugs.debian.org/752237
12
clamd/scanner.c | 3 ++-
13
1 file changed, 2 insertions(+), 1 deletion(-)
15
diff --git a/clamd/scanner.c b/clamd/scanner.c
16
index 06e2d1d..95656e2 100644
19
@@ -118,6 +118,7 @@ int scan_callback(STATBUF *sb, char *filename, const char *msg, enum cli_ftw_rea
21
/* detect disconnected socket,
22
* this should NOT detect half-shutdown sockets (SHUT_WR) */
23
+#if !defined(__GNU__)
24
if (send(scandata->conn->sd, &ret, 0, 0) == -1 && errno != EINTR) {
25
logg("$Client disconnected while command was active!\n");
26
thrmgr_group_terminate(scandata->conn->group);
27
@@ -125,7 +126,7 @@ int scan_callback(STATBUF *sb, char *filename, const char *msg, enum cli_ftw_rea
33
if (thrmgr_group_need_terminate(scandata->conn->group)) {
34
logg("^Client disconnected while scanjob was active\n");
35
if (reason == visit_file)