aboutsummaryrefslogtreecommitdiff
path: root/src/include
Commit message (Collapse)AuthorAge
...
* Fix C++-style commentsEvgeny Grin (Karlson2k)2015-07-07
|
* Move all internal limits definitions to MHD_limits.hEvgeny Grin (Karlson2k)2015-07-07
|
* fix late counter-decrement issue reported by MD on the mailinglistChristian Grothoff2015-06-27
|
* fix HEAD handling issue in connection with MHD_create_response_from_callback ↵Christian Grothoff2015-06-26
| | | | reported by Cristian Klein on the mailinglist
* add content-dispositionChristian Grothoff2015-06-26
|
* Bump MHD_VERSION, update ChangeLog, substitute ↵Evgeny Grin (Karlson2k)2015-06-09
| | | | MHD_create_response_from_fd_at_offset64() instead of MHD_create_response_from_fd_at_offset()
* send_param_adapter(): support hosts with sendfile64(), but with 32-bit off_t ↵Evgeny Grin (Karlson2k)2015-06-09
| | | | (i.e. Android)
* Add MHD_FEATURE_LARGE_FILE value for MHD_is_feature_supported()Evgeny Grin (Karlson2k)2015-06-09
|
* Add MHD_create_response_from_fd64() and ↵Evgeny Grin (Karlson2k)2015-06-09
| | | | | | MHD_create_response_from_fd_at_offset64() functions, check lseek() results when reading file, check whether desired file offset fits off_t
* Bump MHD_VERSION and update ChangeLogEvgeny Grin (Karlson2k)2015-06-03
|
* microhttpd.h: print deprecation messages if MHD_create_response_from_data() ↵Evgeny Grin (Karlson2k)2015-06-03
| | | | is used
* microhttpd.h: add defines for deprecating functionsEvgeny Grin (Karlson2k)2015-06-03
|
* microhttpd.h: print deprecation messages if MHD_LONG_LONG or ↵Evgeny Grin (Karlson2k)2015-06-03
| | | | | | MHD_LONG_LONG_PRINTF are defined or if MHD_HTTP_METHOD_NOT_ACCEPTABLE is used
* microhttpd.h: add defines for deprecating macrosEvgeny Grin (Karlson2k)2015-06-03
|
* Unify and correct usage of WINDOWS/CYGWIN/MHD_WINSOCK_SOCKETS macrosEvgeny Grin (Karlson2k)2015-06-02
|
* -comment on data typesChristian Grothoff2015-06-02
|
* -version bumpChristian Grothoff2015-05-29
|
* bumpChristian Grothoff2015-05-18
|
* From ML:Christian Grothoff2015-05-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Hey, I'm debugging a problem with a crash in MHD_select_thread. We had MHD_start_daemon_va fail while creating worker threads with the following error: "file descriptor for worker control pipe exceeds maximum value". We know what caused this error and are fixing it. But the problem was that a MHD_select_thread worker thread was left running in the background after MHD_start_daemon_va returned failure. I think the problem is from this code in the thread_failed case in daemon.c: /* Shutdown worker threads we've already created. Pretend as though we had fully initialized our daemon, but with a smaller number of threads than had been requested. */ daemon->worker_pool_size = i - 1; MHD_stop_daemon (daemon); return NULL; From the code, it looks like "i" is actually the number of threads that were successfully created, so the "i - 1" in this code will leave an extra thread hanging since MHD_stop_daemon will clean up one less thread than it should. I'll probably try to work up a test to verify removing the "- 1" is correct, but that could take me some time so I wanted to make sure I wasn't missing something obvious before heading down that path. ~JareD He is right, this patch fixes it.
* microhttpd.h: bump MHD_VERSIONEvgeny Grin (Karlson2k)2015-05-07
|
* Define and use system-independent wrapper macro for poll()Evgeny Grin (Karlson2k)2015-05-07
|
* fix #3784Christian Grothoff2015-05-06
|
* -version bumpingChristian Grothoff2015-04-29
|
* HI,Christian Grothoff2015-04-14
| | | | | | | | | | | | | | | | | The MHD goes in a busy loop when it is configured with MHD_USE_POLL_INTERNALLY and a connection times out. When the connection times out, the connection is closed at connection.c:2646, which sets connection->event_loop_info = MHD_EVENT_LOOP_INFO_CLEANUP. When the loop info is set to MHD_EVENT_LOOP_INFO_CLEANUP, the main function of the thread loop, MHD_poll_all, never calls back the connection idle callback, which would have cleaned the connection and exit the loop. I resolved the issue in my development code by adding pos->idle_handler (pos) at daemon.c:2477 in MHD_poll_all (SVN 35533). The busy loop could be tested using a small enough connection timeout and netcat: nc -v -w 100 <IP ADDRESS> <IP PORT> CPU usage will reach 100% in one of the CPU and will remain at that level even when the netcat has closed its end of the connection. Thanks, Louis Benoit
* -bumpChristian Grothoff2015-04-12
|
* The issue reported below is correct, the fix is not. The "!=" comparing the ↵Christian Grothoff2015-04-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | RF flag should simply have been "==". Louis wrote: There is a change of behavior between 0.9.37 and 0.9.38. When a client adds a "Connection: close" header in 0.9.37, MHD adds a "Connection: close" header to its response and then close the connection (as suggested in rfc2616, section 8.1.2.1). The "Connection: close" header is not added in 0.9.38. I looked into the 0.9.38 code and the code that prevents the inclusion of the "Connection: close" header is at line 773 of connection.c. if ( ( (NULL != client_requested_close) || (MHD_YES == connection->read_closed) ) && (NULL == response_has_close) && (0 != (connection->response->flags & MHD_RF_HTTP_VERSION_1_0_ONLY) ) ) must_add_close = MHD_YES; Shouldn't it read if ( ( (NULL != client_requested_close) || (MHD_YES == connection->read_closed) || (0 != (connection->response->flags & MHD_RF_HTTP_VERSION_1_0_ONLY) ) ) && (NULL == response_has_close) ) must_add_close = MHD_YES; Thanks, Louis Benoit
* Fixed a few c/p errors and removed not related changes.Christian Grothoff2015-04-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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?
* -bumpChristian Grothoff2015-04-09
|
* tolerate TLS 1.1 / 1.2 disagreementChristian Grothoff2015-04-06
|
* fix multi-threaded shutdown deadlock issueChristian Grothoff2015-04-04
|
* Add MHD_FEATURE_HTTPS_KEY_PASSWORDEvgeny Grin (Karlson2k)2015-04-03
|
* fix #3751Christian Grothoff2015-04-03
|
* Robert Gronenberg wrote:Christian Grothoff2015-03-31
| | | | | | | | | | | | | | | | | | | | | | | | | I am using libmicrohttpd in a multithreaded application in the thread-per-connection mode. In order to maintain statistics and such on the various clients, the application should be notified about connections being started and stopped. Something like the MHD_OPTION_NOTIFY_COMPLETED for requests, but then for connections. As far as I could find libmicrohttpd does not (yet) provide that functionality. Attached is a patch that does add this functionality by registering a connection notification callback function: MHD_OPTION_NOTIFY_CONNECTION (inspired by the MHD_OPTION_NOTIFY_COMPLETED option). Could this be included in libmicrohttpd? => The patch was only working for multithreaded apps, so I adjusted it to cover other threading models, fixed a merge issue and added the ability to associate a void* with the callbacks (and obtain it via MHD connection info). And I updated the manual & ChangeLog. Now I think it can be included ;-).
* add MHD_HTTP_METHOD_PATCH for MartinChristian Grothoff2015-03-27
|
* adding MHD_OPTION_HTTPS_KEY_PASSWORDChristian Grothoff2015-02-08
|
* -bringing copyright tags up to FSF standardChristian Grothoff2015-02-07
|
* -bringing copyright tags up to FSF standardChristian Grothoff2015-02-07
|
* fix issue with chunked encoding used for http1.0 connections of Keep-Alive ↵Christian Grothoff2015-02-04
| | | | header was set
* -ensure '1' is interpreted as uint32_tChristian Grothoff2015-01-22
|
* fix infinite loop reported by Dominic FroudChristian Grothoff2015-01-18
|
* [W32] Use _beginthreadex() instead of CreateThread() for better ↵Evgeny Grin (Karlson2k)2014-12-26
| | | | compatibility with CRT functions called in additional threads
* fix autoinit_funcs.h reference in makefile EXTRA_DISTEvgeny Grin (Karlson2k)2014-12-24
|
* [w32] Set thread nameEvgeny Grin (Karlson2k)2014-12-24
|
* -fix dist issueChristian Grothoff2014-12-24
|
* Add and use header for multiplatform support of Init/Deinit functionsEvgeny Grin (Karlson2k)2014-12-22
|
* [w32] Help code to detect IPPROTO_IPV6 on VCEvgeny Grin (Karlson2k)2014-12-22
|
* Rework _MHD_EXTERN definition for VS projectEvgeny Grin (Karlson2k)2014-12-22
|
* Replace snprintf with platform-independent macroEvgeny Grin (Karlson2k)2014-12-22
|
* [w32] Add W32 emulation for snprintf()Evgeny Grin (Karlson2k)2014-12-22
|
* Replace strcasecmp/strncasecmp with platform-independent macrosEvgeny Grin (Karlson2k)2014-12-22
|