From f6a7b48c298535dbb130f99d7e4fca5c22e0f18b Mon Sep 17 00:00:00 2001 From: Kozlov Dmitry Date: Fri, 15 Oct 2010 10:51:22 +0400 Subject: radius: fixed incorrect handling when socket read failed with error other than EAGAIN (thanks to GlooM) --- accel-pptpd/radius/packet.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'accel-pptpd/radius') diff --git a/accel-pptpd/radius/packet.c b/accel-pptpd/radius/packet.c index 0277e5f..543e784 100644 --- a/accel-pptpd/radius/packet.c +++ b/accel-pptpd/radius/packet.c @@ -125,10 +125,12 @@ int rad_packet_recv(int fd, struct rad_packet_t **p, struct sockaddr_in *addr) else n = read(fd, pack->buf, REQ_LENGTH_MAX); if (n < 0) { - rad_packet_free(pack); - if (errno == EAGAIN) + if (errno == EAGAIN) { + rad_packet_free(pack); return -1; - log_ppp_error("radius:packet:read: %s\n", strerror(errno)); + } + if (errno != ECONNREFUSED) + log_ppp_error("radius:packet:read: %s\n", strerror(errno)); goto out_err; } break; -- cgit v1.2.3