X-Git-Url: https://tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fprotocol.c;h=6da7c2cb03aa757d82f7ea7380659411a207add5;hp=d09bd7a6900eb2c566414ec34cd9aeb8ba152aa9;hb=153fc35e57c0104aa4ea9103bcdbca3665e4934c;hpb=0b0c2a372ff5d11f73af172e07a93b2656374a42 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; }