From cvs-return-3631-apmail-apr-cvs-archive=apr.apache.org@apr.apache.org Fri Jun 21 16:43:14 2002 Return-Path: Delivered-To: apmail-apr-cvs-archive@apr.apache.org Received: (qmail 62606 invoked by uid 500); 21 Jun 2002 16:43:13 -0000 Mailing-List: contact cvs-help@apr.apache.org; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Reply-To: dev@apr.apache.org Delivered-To: mailing list cvs@apr.apache.org Received: (qmail 62592 invoked from network); 21 Jun 2002 16:43:10 -0000 Date: 21 Jun 2002 16:43:07 -0000 Message-ID: <20020621164307.92119.qmail@icarus.apache.org> From: trawick@apache.org To: apr-cvs@apache.org Subject: cvs commit: apr/misc/unix rand.c X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N trawick 2002/06/21 09:43:07 Modified: misc/unix rand.c Log: report the right error code after I/O with the EGD fails Revision Changes Path 1.12 +7 -4 apr/misc/unix/rand.c Index: rand.c =================================================================== RCS file: /home/cvs/apr/misc/unix/rand.c,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- rand.c 21 Jun 2002 11:33:55 -0000 1.11 +++ rand.c 21 Jun 2002 16:43:07 -0000 1.12 @@ -141,8 +141,7 @@ egd_socket = socket(PF_UNIX, SOCK_STREAM, 0); if (egd_socket == -1) { - /* Does socket set errno? */ - return APR_EGENERAL; + return errno; } rv = connect(egd_socket, (struct sockaddr*)&addr, egd_addr_len); @@ -159,9 +158,11 @@ srv = write(egd_socket, req, 2); if (srv == -1) { + int bad_errno = errno; + shutdown(egd_socket, SHUT_RDWR); close(egd_socket); - return errno; + return bad_errno; } if (srv != 2) { @@ -173,9 +174,11 @@ resp_expected = req[1]; srv = read(egd_socket, resp, resp_expected); if (srv == -1) { + int bad_errno = errno; + shutdown(egd_socket, SHUT_RDWR); close(egd_socket); - return errno; + return bad_errno; } memcpy(curbuf, resp, srv);