I agree with Ken's points, the other thing you can do is share a (simplified?) version of your code so we can look at it and maybe see if there is anything wrong with it.
On 11/03/2015 04:15 PM, Kenneth Mastro wrote: > Somebody with more knowledge may want to chime in, but I have a few random > thoughts... > > 1) If you're using 'thread per connection' and your callback just isn't > getting called AT ALL... Is it possible that you only have 1 thread > allotted and it's already being consumed by another request? I.e., what > does your call to 'MHD_start_daemon' look like? Do you have a connection > limit set? What about a connection timeout? (If you have a connection > timeout, try reducing it to something really short - see if the symptoms > improve.) > > 2) On the browser side, use something like Firebug (for Firefox) or > Chrome's built-in tools and see what it thinks is happening to the > connections/requests. > > 3) Try make sure all your 'GET' requests are working properly before diving > into 'POST' (which tends to be much harder - at least it was for me). > > 4) That connection callback is a little funky because it gets called twice > for every request. I'm assuming you're handling that, but just keep that > in mind. > > 5) Finally - I think the 0.9.45 release had something in it that fixed a > minor bug with thread-per-connection. I haven't tried updating to it yet > (I'm a version or 2 behind right now), but if you're pretty sure your code > is correct you could always try rolling back to an earlier version - see if > a regression of some kind was introduced. (Unlikely, but 0.9.45 hasn't > been out very long so you never know.) > > > As a side note - MHD is a really great library. It can be a little > challenging to get your 'web server' working initially, but I've found that > it performs really well and is very reliable once you do. > > > Ken > > > > On Mon, Nov 2, 2015 at 8:18 PM, Phil Rosenberg <[email protected]> > wrote: > >> Hi >> I have just started using microhttpd to provide web access to control >> some software I have written. However I've just hit a problem. I'm not >> a http expert, so please bear with me. >> >> I have set up MHD to respond to get and post requests. For both cases >> I return a html form to the client with some text boxes and a submit >> button. The form is followed by the time, so I can check that the page >> has updated. For a post request I parse the keys to extract the >> information I need to control my application. I'm using one thread per >> connection. My code was initially based on the minimal example on the >> web page, I then added the POST processing code following the >> tutorial. >> >> I am using version 0.9.45 built on Windows 10 using Visual Studio 2015 >> Community Edition. >> >> Unfortunately about 50% of the time when I press the submit button in >> the browser I get a loading symbol in the tab, but nothing happens. >> Pressing the submit button again usually seems to get things working, >> but sometimes it takes quite a few button presses. >> >> Running in the debugger I can see that for these hung connections my >> first callback is not being called. I think the port is still open or >> something, because exiting my application causes the browser to >> immediately display a cannot connect message. It's like MHD is stuck >> in a loop internally or something. >> >> I've tried connecting with IE and Edge from the local machine and from >> Firefox from an Ubuntu machine on the same LAN. All give similar >> symptoms. >> >> One possibly relevant item - I get similar hangs if I reply MHD_NO to >> any of the callbacks, which I thought was supposed to sever the >> connection. >> >> As I said I'm not an expert on HTTP, and I've only just picked up MHD, >> so any debugging advice would be most welcome. I'm happy to do the >> legwork, but I'm struggling to know where to start. >> >> Thanks in advance for any help >> >> Phil >> >> >
signature.asc
Description: OpenPGP digital signature
