Re: [libmicrohttpd] suspend/resume patch

2016-04-14 Thread Flavio Ceolin
Hi Christian, > Hi Flavio, > > Well, if we do bother to detect this, my preference would be not to > ignore the bad behavior, but to literally call the panic function (i.e. > abort()). Suspending an already suspended connection or resuming one > that isn't already resumed is indicative of a seri

Re: [libmicrohttpd] suspend/resume patch

2016-04-14 Thread Christian Grothoff
Hi Flavio, Well, if we do bother to detect this, my preference would be not to ignore the bad behavior, but to literally call the panic function (i.e. abort()). Suspending an already suspended connection or resuming one that isn't already resumed is indicative of a serious logic error in the appl

[libmicrohttpd] suspend/resume patch

2016-04-14 Thread Flavio Ceolin
Hi folks, Is there any reason for microhttpd do not check if a connections is already resumed or suspended and handle this, instead of have undefined behavior ? As far as I could see, the connection struct already has the suspended field, so it's just a simple check. For the user perspective is q

Re: [libmicrohttpd] daemon stalled

2016-04-14 Thread Markus Doppelbauer
Hello, You are right. But there is an issue (at least on Linux). It works with "MHD_USE_EPOLL_LINUX_ONLY" - but not with "select()"/"poll()". Sooner or later the daemon gets stalled. Maybe a race condition? I have attached the patched testcase. Thanks a lot! Markus Am Donnerstag, den 14.04.2016, 1

Re: [libmicrohttpd] daemon stalled

2016-04-14 Thread Evgeny Grin
Markus, You have resources leak in your test. Modify with === --- test.cpp.orig2016-04-14 16:38:27.0 +0300 +++ test.cpp2016-04-14 17:26:17.677237034 +0300 @@ -24,7 +24,9 @@ static void suspend_connection( struct M pthread_t thread_id; pthread_attr_t th

Re: [libmicrohttpd] daemon stalled

2016-04-14 Thread Markus Doppelbauer
Sorry - wrong testcase. The attached is the proper one. Am Donnerstag, den 14.04.2016, 13:55 +0200 schrieb Markus Doppelbauer: > Hello, > > It seems that there is an other issue (is neither works with 0.9.48): > a) The connection creates a "callback" response > b) The connection is suspended after

[libmicrohttpd] daemon stalled

2016-04-14 Thread Markus Doppelbauer
Hello, It seems that there is an other issue (is neither works with 0.9.48): a) The connection creates a "callback" response b) The connection is suspended after every byte - then resumed (by a thread) c) The daemon get stalled after 33 requests I have attached a small testcase. Commandline: g++

Re: [libmicrohttpd] libmicrohttpd 0.9.49 released

2016-04-14 Thread Markus Doppelbauer
Hi Evgeny, Great code!! Thanks a lot! Markus Am Donnerstag, den 14.04.2016, 13:28 +0300 schrieb Evgeny Grin: > On 13.04.2016 12:18, Markus Doppelbauer wrote: > > Maybe there is an other issue in 0.9.49. It works with 0.9.48. > > > > The attached testcase tries to: > > a) create a socket on port 80

Re: [libmicrohttpd] libmicrohttpd 0.9.49 released

2016-04-14 Thread Evgeny Grin
On 13.04.2016 12:18, Markus Doppelbauer wrote: > Maybe there is an other issue in 0.9.49. It works with 0.9.48. > > The attached testcase tries to: > a) create a socket on port 8080 > b) a connection is suspended > c) a thread waits a second, then resumes the connection > d) error: the connectio