You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by rb...@hyperreal.org on 2000/02/14 14:43:40 UTC

cvs commit: apache-2.0/src/lib/apr/network_io/unix sendrecv.c

rbb         00/02/14 05:43:39

  Modified:    src/lib/apr/network_io/unix sendrecv.c
  Log:
  Fix some bugs in ap_send and ap_recv.  We used to return APR_SUCCESS even
  when it didn't succeed.  The other problem this is solving, is that we
  never set the length to -1 anymore.  The length is the number of bytes
  written or read, as such -1 makes no sense.  If there is an error, 0 bytes
  were written, so len should be 0.
  Submitted by:	Manoj Kasichainula and Ryan Bloom
  
  Revision  Changes    Path
  1.10      +10 -2     apache-2.0/src/lib/apr/network_io/unix/sendrecv.c
  
  Index: sendrecv.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/lib/apr/network_io/unix/sendrecv.c,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- sendrecv.c	2000/01/26 05:01:16	1.9
  +++ sendrecv.c	2000/02/14 13:43:39	1.10
  @@ -108,17 +108,21 @@
           } while (srv == -1 && errno == EINTR);
   
           if (srv == 0) {
  -            (*len) = -1;
  +            (*len) = 0;
               return APR_TIMEUP;
           }
           else if (srv < 0) {
  -            (*len) = -1;
  +            (*len) = 0;
               return errno;
           }
           else {
               do {
                   rv = write(sock->socketdes, buf, (*len));
               } while (rv == -1 && errno == EINTR);
  +            if (rv == -1) {
  +                (*len) = 0;
  +                return errno;
  +            }
           }
       }
       (*len) = rv;
  @@ -175,6 +179,10 @@
               do {
                   rv = read(sock->socketdes, buf, (*len));
               } while (rv == -1 && errno == EINTR);
  +            if (rv == -1) {
  +                (*len) = 0;
  +                return errno;
  +            }
           }
       }
       else if (rv == -1 && errno == EAGAIN && sock->timeout == 0) {