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 1999/05/19 17:17:18 UTC

cvs commit: apache-apr/apr/network_io/unix poll.c

rbb         99/05/19 08:17:18

  Modified:    include  apr_network_io.h
               apr/network_io/unix poll.c
  Log:
  Fixed some msitakes in ap_poll logic and added some more accessor functions.
  
  Revision  Changes    Path
  1.19      +2 -0      apache-apr/include/apr_network_io.h
  
  Index: apr_network_io.h
  ===================================================================
  RCS file: /home/cvs/apache-apr/include/apr_network_io.h,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- apr_network_io.h	1999/05/12 19:46:14	1.18
  +++ apr_network_io.h	1999/05/19 15:17:16	1.19
  @@ -114,6 +114,8 @@
   ap_pollfd_t *ap_setup_poll(ap_context_t *, ap_int32_t);
   ap_int32_t ap_poll(ap_context_t *, ap_pollfd_t *, ap_int32_t, ap_int32_t);
   void ap_add_poll_socket(ap_context_t *, ap_pollfd_t *, ap_socket_t *, ap_int16_t, ap_int32_t);
  +ap_int16_t ap_get_revents(ap_context_t *, ap_pollfd_t *, ap_int32_t);
  +
   /*  accessor functions   */
   
   #ifdef __cplusplus
  
  
  
  1.5       +27 -2     apache-apr/apr/network_io/unix/poll.c
  
  Index: poll.c
  ===================================================================
  RCS file: /home/cvs/apache-apr/apr/network_io/unix/poll.c,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- poll.c	1999/05/12 19:46:17	1.4
  +++ poll.c	1999/05/19 15:17:17	1.5
  @@ -87,6 +87,26 @@
       return rv;
   }
   
  +ap_int16_t get_revent(ap_int16_t event)
  +{
  +    ap_int16_t rv = 0;
  +
  +    if (event & POLLIN)
  +        rv |= APR_POLLIN;        
  +    if (event & POLLPRI)
  +        rv |= APR_POLLPRI;        
  +    if (event & POLLOUT)
  +        rv |= APR_POLLOUT;       
  +    if (event & POLLERR)
  +        rv |= APR_POLLERR;        
  +    if (event & POLLHUP)
  +        rv |= APR_POLLHUP;        
  +    if (event & POLLNVAL)
  +        rv |= APR_POLLNVAL;        
  +
  +    return rv;
  +}
  +
   void ap_add_poll_socket(ap_context_t *cont, struct pollfd_t *aprset, 
   			       struct socket_t *sock, ap_int16_t event, 
                                  ap_int32_t pos)
  @@ -108,11 +128,16 @@
           pollset[i].events = aprset[i].events;
       }
   
  -    rv = poll(pollset, nsds, timeout);
  +    rv = poll(pollset, nsds, timeout * 1000);
       
       for (i = 0; i < nsds; i++) {
  -        pollset[i].revents = aprset[i].revents;
  +        aprset[i].revents = get_revent(pollset[i].revents);
       }
       return rv;
  +}
  +
  +ap_int16_t ap_get_revents(ap_context_t *cont, struct pollfd_t *aprset, ap_int32_t pos)
  +{
  +    return aprset[pos].revents;
   }