diff options
author | Christian Grothoff <christian@grothoff.org> | 2015-04-09 22:43:05 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2015-04-09 22:43:05 +0000 |
commit | 84f0be5c249010235f4e2267cb8f77f6fc07d45a (patch) | |
tree | ecbf987758ff4685ce47a4f0d4b7ceeb8bba6e50 /src/include | |
parent | d8ac6fd24592259960dff5479a2f12e69b5a09e8 (diff) | |
download | libmicrohttpd-84f0be5c249010235f4e2267cb8f77f6fc07d45a.tar.gz libmicrohttpd-84f0be5c249010235f4e2267cb8f77f6fc07d45a.zip |
Fixed a few c/p errors and removed not related changes.
Can't test POLL mode as MHD didn't support POLL on W32. The reason - winsock implementation is somehow different from POSIX one. libcurl initially added poll support for win32 but later it was removed. I didn't check specific reason so for safety MHD didn't use POLL on W32. However I leave changes for POLL code "as is" in case that we will add support for POLL on win32.
SELECT mode now works perfectly. Shutdown processed without any delay.
May be some comments will be good addition.
Patch is attached.
--
Evgeny
09.04.2015, 17:28, "Christian Grothoff" <christian@grothoff.org>:
> Hi Evgeny,
>
> I've tried to put together a patch for the issue, but as I'm on
> GNU/Linux, I cannot even test if the patch compiles... Please let me
> know if it works (and please test with POLL and SELECT separately), at
> least in principle I think this is roughly what the patch should look
> like...
>
> Happy hacking!
>
> Christian
>
> On 04/09/2015 03:25 PM, Evgeny Grin wrote:
>> If HAVE_LISTEN_SHUTDOWN is not defined (as on win32), pipe is used
>> automatically.
>> But pipe is monitored only in main "select()" thread. It's not
>> monitored in "connection" thread.
>>
>> Best Wishes,
>> Evgeny Grin
>>
>> On 04/09/2015 12:56 PM, Evgeny Grin wrote:
>>> Hi Christian!
>>>
>>> Another issue on win32, 100% reproducible.
>>> When running Kodi unittests, MHD always takes 120 seconds to shutdown.
>>>
>>> How to reproduce:
>>> * Start MHD with THREAD_PER_CONNECTION | DEBUG and some static
>> response,
>>> * Generate one http 1.1 request with libcurl. Notice that libcurl
>> always add keep-alive for http 1.1.
>>> * Let MHD to process request and answer with response.
>>> * MHD will stay with master thread and one connection thread waiting
>> for additional requests from same client.
>>> * Call MHD shutdown. Main thread will shutdown all sockets, but
>> additional connection thread will stay at MHD_sys_select_ and will get
>> notification about socket shutdown only after 2 minutes. May be it's
>> after libcurl will close connection.
>>> Again - have no idea how to fix it properly. Use pair of sockets
>> (emulated pipe) for each connection thread? Add daemon pipe FD to
>> select() in connection thread?
Diffstat (limited to 'src/include')
-rw-r--r-- | src/include/microhttpd.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/include/microhttpd.h b/src/include/microhttpd.h index 2970adce..e4a94aaf 100644 --- a/src/include/microhttpd.h +++ b/src/include/microhttpd.h | |||
@@ -130,7 +130,7 @@ typedef intptr_t ssize_t; | |||
130 | * Current version of the library. | 130 | * Current version of the library. |
131 | * 0x01093001 = 1.9.30-1. | 131 | * 0x01093001 = 1.9.30-1. |
132 | */ | 132 | */ |
133 | #define MHD_VERSION 0x00094001 | 133 | #define MHD_VERSION 0x00094002 |
134 | 134 | ||
135 | /** | 135 | /** |
136 | * MHD-internal return code for "YES". | 136 | * MHD-internal return code for "YES". |