From 153fc35e57c0104aa4ea9103bcdbca3665e4934c Mon Sep 17 00:00:00 2001 From: Guus Sliepen Date: Sun, 25 Feb 2001 11:09:29 +0000 Subject: [PATCH 1/1] Corrected check for errors after read() calls. --- src/meta.c | 14 ++++++++------ src/protocol.c | 15 ++++++++++++--- 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/src/meta.c b/src/meta.c index fa32b896..f9b18ca3 100644 --- a/src/meta.c +++ b/src/meta.c @@ -17,7 +17,7 @@ along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - $Id: meta.c,v 1.1.2.14 2001/01/07 17:08:57 guus Exp $ + $Id: meta.c,v 1.1.2.15 2001/02/25 11:09:29 guus Exp $ */ #include "config.h" @@ -117,17 +117,19 @@ cp if(lenin<=0) { - if(errno==EINTR) - return 0; - if(errno==0) + if(lenin==0) { if(debug_lvl >= DEBUG_CONNECTIONS) syslog(LOG_NOTICE, _("Connection closed by %s (%s)"), cl->name, cl->hostname); } else - syslog(LOG_ERR, _("Metadata socket read error for %s (%s): %m"), - cl->name, cl->hostname); + if(errno==EINTR) + return 0; + else + syslog(LOG_ERR, _("Metadata socket read error for %s (%s): %m"), + cl->name, cl->hostname); + return -1; } diff --git a/src/protocol.c b/src/protocol.c index d09bd7a6..6da7c2cb 100644 --- a/src/protocol.c +++ b/src/protocol.c @@ -17,7 +17,7 @@ along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - $Id: protocol.c,v 1.28.4.78 2001/02/06 10:42:27 guus Exp $ + $Id: protocol.c,v 1.28.4.79 2001/02/25 11:09:29 guus Exp $ */ #include "config.h" @@ -31,6 +31,7 @@ #include #include #include +#include #include #include @@ -1324,9 +1325,17 @@ int tcppacket_h(connection_t *cl) while(todo) { x = read(cl->meta_socket, p, todo); - if(x<0) + + if(x<=0) { - syslog(LOG_ERR, _("Error during reception of PACKET from %s (%s): %m"), cl->name, cl->hostname); + if(x==0) + syslog(LOG_NOTICE, _("Connection closed by %s (%s)"), cl->name, cl->hostname); + else + if(errno==EINTR) + continue; + else + syslog(LOG_ERR, _("Error during reception of PACKET from %s (%s): %m"), cl->name, cl->hostname); + return -1; } -- 2.20.1