You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by bj...@hyperreal.org on 1999/10/18 13:06:40 UTC

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

bjh         99/10/18 04:06:39

  Modified:    src/lib/apr/network_io/os2 sendrecv.c
  Log:
  OS/2: Change timeout style in ap_send()/ap_receive() and change to use native
  thread safe select() instead of the EMX library's select().
  
  Revision  Changes    Path
  1.2       +23 -22    apache-2.0/src/lib/apr/network_io/os2/sendrecv.c
  
  Index: sendrecv.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/lib/apr/network_io/os2/sendrecv.c,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- sendrecv.c	1999/08/17 15:59:43	1.1
  +++ sendrecv.c	1999/10/18 11:06:38	1.2
  @@ -59,9 +59,10 @@
   #include "apr_errno.h"
   #include "apr_general.h"
   #include "apr_network_io.h"
  +#include "apr_lib.h"
   #include <sys/time.h>
   
  -ap_status_t ap_send(struct socket_t *sock, const char *buf, ap_ssize_t *len, time_t sec)
  +ap_status_t ap_send(struct socket_t *sock, const char *buf, ap_ssize_t *len)
   {
       ssize_t rv;
       
  @@ -69,21 +70,20 @@
           rv = write(sock->socketdes, buf, (*len));
       } while (rv == -1 && errno == EINTR);
   
  -    if (rv == -1 && errno == EAGAIN && sec > 0) {
  -        struct timeval tv;
  -        fd_set fdset;
  +    if (rv == -1 && errno == EAGAIN && sock->timeout > 0) {
  +        int fds;
           int srv;
   
           do {
  -            FD_ZERO(&fdset);
  -            FD_SET(sock->socketdes, &fdset);
  -            tv.tv_sec  = sec;
  -            tv.tv_usec = 0;
  -
  -            srv = select(FD_SETSIZE, NULL, &fdset, NULL, &tv);
  +            fds = sock->socketdes;
  +            srv = os2_select(&fds, 0, 1, 0, sock->timeout);
           } while (srv == -1 && errno == EINTR);
   
  -        if (srv < 1) {
  +        if (srv == 0) {
  +            (*len) = -1;
  +            return APR_TIMEUP;
  +        }
  +        else if (srv < 0) {
               (*len) = -1;
               return errno;
           }
  @@ -96,8 +96,10 @@
       (*len) = rv;
       return APR_SUCCESS;
   }
  +
   
  -ap_status_t ap_recv(struct socket_t *sock, char *buf, ap_ssize_t *len, time_t sec)
  +
  +ap_status_t ap_recv(struct socket_t *sock, char *buf, ap_ssize_t *len)
   {
       ssize_t rv;
       
  @@ -105,21 +107,20 @@
           rv = read(sock->socketdes, buf, (*len));
       } while (rv == -1 && errno == EINTR);
   
  -    if (rv == -1 && errno == EAGAIN && sec > 0) {
  -        struct timeval tv;
  -        fd_set fdset;
  +    if (rv == -1 && errno == EAGAIN && sock->timeout > 0) {
  +        int fds;
           int srv;
   
           do {
  -            FD_ZERO(&fdset);
  -            FD_SET(sock->socketdes, &fdset);
  -            tv.tv_sec  = sec;
  -            tv.tv_usec = 0;
  -
  -            srv = select(FD_SETSIZE, &fdset, NULL, NULL, &tv);
  +            fds = sock->socketdes;
  +            srv = os2_select(&fds, 1, 0, 0, sock->timeout);
           } while (srv == -1 && errno == EINTR);
   
  -        if (srv < 1) {
  +        if (srv == 0) {
  +            (*len) = -1;
  +            return APR_TIMEUP;
  +        }
  +        else if (srv < 0) {
               (*len) = -1;
               return errno;
           }
  
  
  

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

Posted by Brian Havard <br...@kheldar.apana.org.au>.
On Mon, 18 Oct 1999 09:38:09 -0400, Bill Stoddard wrote:

>
>> bjh         99/10/18 04:06:39
>>
>>   Modified:    src/lib/apr/network_io/os2 sendrecv.c
>>   Log:
>>   OS/2: Change timeout style in ap_send()/ap_receive() and change to use
>native
>>   thread safe select() instead of the EMX library's select().
>
>Are you planning on eliminating the EMX pre-req in Apache 2.0? Just curious.

I hadn't planed to as EMX still takes care of a few unixisms for me. It's
also the only free compiler around for OS/2 and supporting multiple compilers
would be a pain.

-- 
 ______________________________________________________________________________
 |  Brian Havard                 |  "He is not the messiah!                   |
 |  brianh@kheldar.apana.org.au  |  He's a very naughty boy!" - Life of Brian |
 ------------------------------------------------------------------------------


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

Posted by Bill Stoddard <st...@raleigh.ibm.com>.
> bjh         99/10/18 04:06:39
>
>   Modified:    src/lib/apr/network_io/os2 sendrecv.c
>   Log:
>   OS/2: Change timeout style in ap_send()/ap_receive() and change to use
native
>   thread safe select() instead of the EMX library's select().

Are you planning on eliminating the EMX pre-req in Apache 2.0? Just curious.

Bill