You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by "William A. Rowe, Jr." <wr...@rowe-clan.net> on 2004/06/21 19:05:42 UTC

Re: interesting Win32 PR 23982: "Apache 2.xx is incompatible with Winsock 2.0"

At 07:12 AM 6/21/2004, Jeff Trawick wrote:
>There is an explanation with enough detail to be interesting about why Apache 2.0 doesn't get along with layered service providers.
>
>See http://issues.apache.org/bugzilla/show_bug.cgi?id=23982
>
>Can some Win32-savant have a look at this and respond?

Whew :)  This suggestion looks quite rational, the poster obviously did patch,
so all we need is the patch he proposes.  I think your response was fine Jeff.

I was worried, because another report I closed asked us to handle the socket
at the LSP level, which implies that LSP author did an incomplete job of
implementing their provider, or else they were tripped up by the bug that this
poster has identified.  Jan's solution sounds sane.

Bill  


Re: interesting Win32 PR 23982: "Apache 2.xx is incompatible with Winsock 2.0"

Posted by Bill Stoddard <bi...@wstoddard.com>.
Jeff Trawick wrote:

> William A. Rowe, Jr. wrote:
> 
>> At 07:12 AM 6/21/2004, Jeff Trawick wrote:
>>
>>> There is an explanation with enough detail to be interesting about 
>>> why Apache 2.0 doesn't get along with layered service providers.
>>>
>>> See http://issues.apache.org/bugzilla/show_bug.cgi?id=23982
>>>
>>> Can some Win32-savant have a look at this and respond?
>>
>>
>>
>> Whew :)  This suggestion looks quite rational, the poster obviously 
>> did patch,
>> so all we need is the patch he proposes.  I think your response was 
>> fine Jeff.
> 
> 
> cool; I wondered if he was headed down the wrong river or if in fact the 
> explanation sounded plausible to our Win32 folks ;)
> 
> Thanks!
> 
sounds plausible

Bill

Re: interesting Win32 PR 23982: "Apache 2.xx is incompatible with Winsock 2.0"

Posted by Jeff Trawick <tr...@attglobal.net>.
William A. Rowe, Jr. wrote:
> At 07:12 AM 6/21/2004, Jeff Trawick wrote:
> 
>>There is an explanation with enough detail to be interesting about why Apache 2.0 doesn't get along with layered service providers.
>>
>>See http://issues.apache.org/bugzilla/show_bug.cgi?id=23982
>>
>>Can some Win32-savant have a look at this and respond?
> 
> 
> Whew :)  This suggestion looks quite rational, the poster obviously did patch,
> so all we need is the patch he proposes.  I think your response was fine Jeff.

cool; I wondered if he was headed down the wrong river or if in fact the 
explanation sounded plausible to our Win32 folks ;)

Thanks!

Re: interesting Win32 PR 23982: "Apache 2.xx is incompatible with Winsock 2.0"

Posted by Bill Stoddard <bi...@wstoddard.com>.
Playing with this patch... seems to work w/minimal performance penalty...

Bill

Index: sendrecv.c
===================================================================
RCS file: /home/cvs/apr/network_io/win32/sendrecv.c,v
retrieving revision 1.64.2.1
diff -u -r1.64.2.1 sendrecv.c
--- sendrecv.c	13 Feb 2004 09:33:51 -0000	1.64.2.1
+++ sendrecv.c	21 Jun 2004 22:15:42 -0000
@@ -204,6 +204,7 @@
  }


+#define WAIT_FOR_EVENT
  #if APR_HAS_SENDFILE
  /*
   *#define WAIT_FOR_EVENT
@@ -352,10 +353,21 @@
                  if (rv == WAIT_OBJECT_0) {
                      status = APR_SUCCESS;
                      if (!disconnected) {
+#if 0
                          if (!GetOverlappedResult(wait_event, &overlapped,
                                                   &nbytes, FALSE)) {
                              status = apr_get_os_error();
                          }
+#else
+                        if (!WSAGetOverlappedResult(sock->socketdes,
+                                                    &overlapped,
+                                                    &nbytes,
+                                                    FALSE,
+                                                    &dwFlags)) {
+                            status = apr_get_netos_error();
+                        }
+
+#endif
                          /* Ugly code alert: GetOverlappedResult returns
                           * a count of all bytes sent. This loop only
                           * tracks bytes sent out of the file.