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