From: Guus Sliepen Date: Sun, 25 Feb 2001 11:09:29 +0000 (+0000) Subject: Corrected check for errors after read() calls. X-Git-Tag: import-tinc-1.1~785^2~577 X-Git-Url: https://git.meshlink.io/?a=commitdiff_plain;h=153fc35e57c0104aa4ea9103bcdbca3665e4934c;p=meshlink Corrected check for errors after read() calls. --- 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; }