From: Alan T. DeKok Date: Fri, 30 Sep 2011 11:22:23 +0000 (+0200) Subject: ECONNRESET and EWOULDBLOCK aren't portable X-Git-Tag: release_3_0_0_beta0~616 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=75774f0cda91c7e1c8f7046fea193cb4fbc5e1aa;p=thirdparty%2Ffreeradius-server.git ECONNRESET and EWOULDBLOCK aren't portable Wrap them in ifdef's --- diff --git a/src/lib/tcp.c b/src/lib/tcp.c index d9006e52ed3..83badf2db4a 100644 --- a/src/lib/tcp.c +++ b/src/lib/tcp.c @@ -226,10 +226,13 @@ int fr_tcp_read_packet(RADIUS_PACKET *packet, int flags) len = recv(packet->sockfd, packet->vector + packet->data_len, 4 - packet->data_len, 0); - if ((len == 0) || /* clean close */ - ((len < 0) && (errno == ECONNRESET))) { /* forced */ + if (len == 0) return -2; /* clean close */ + +#ifdef ECONNRESET + if ((len < 0) && (errno == ECONNRESET)) { /* forced */ return -2; } +#endif if (len < 0) { fr_strerror_printf("Error receiving packet: %s", @@ -273,10 +276,13 @@ int fr_tcp_read_packet(RADIUS_PACKET *packet, int flags) */ len = recv(packet->sockfd, packet->data + packet->partial, packet->data_len - packet->partial, 0); - if ((len == 0) || /* clean close */ - ((len < 0) && (errno == ECONNRESET))) { /* forced */ - return -2; + if (len == 0) return -2; /* clean close */ + +#ifdef ECONNRESET + if ((len < 0) && (errno == ECONNRESET)) { /* forced */ + return -2; } +#endif if (len < 0) { fr_strerror_printf("Error receiving packet: %s", strerror(errno)); @@ -343,6 +349,7 @@ RADIUS_PACKET *fr_tcp_accept(int sockfd) /* * Non-blocking sockets must handle this. */ +#ifdef EWOULDBLOCK if (errno == EWOULDBLOCK) { packet = rad_alloc(0); if (!packet) return NULL; @@ -351,6 +358,7 @@ RADIUS_PACKET *fr_tcp_accept(int sockfd) packet->src_ipaddr.af = AF_UNSPEC; return packet; } +#endif return NULL; }