<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>Hello Roger,<div>Thank you for your investigation on this! I also found this same problem where the next wsi and the current wsi is the same and put in a fix myself for it but it is still not solving the issue. It is almost as if the SSL socket has no more read data in it even though it was sent. </div><div><br></div><div>Here is an excerpt of the log when posting around 9K bytes of data to the server:</div><div><br></div><div><div>lwsts[13369]: known hdr 8</div><div>lwsts[13369]: libwebsocket_parse sees parsing complete</div><div>lwsts[13369]: libwebsocket_ensure_user_space: 0x8971fc0 protocol 0x8063340</div><div>lwsts[13369]: Method: POST request for '/'</div><div>    post  = /</div><div>    host: = 105.145.65.81:7681</div><div>    connection: = keep-alive</div><div>    origin: = chrome-extension://fhbjgbiflinjbdggehcddcbncdddomop</div><div>    http/1.1  = HTTP/1.1</div><div>    accept: = */*</div><div>    accept-encoding: = gzip, deflate</div><div>    accept-language: = en-US,en;q=0.8</div><div>    cache-control: = no-cache</div><div>    cookie: = test=LWS_1435790394_190834_COOKIE</div><div>    content-length: = 9438</div><div>    content-type: = text/plain;charset=UTF-8</div><div>    user-agent: = Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.130 Safari/537.36</div><div>lwsts[13369]: libwebsocket_read: read_ok</div><div>lwsts[13369]: LWS_CALLBACK_HTTP_BODY: asdasdasdasasdasdasd... len 4096</div><div>lwsts[13369]: libwebsocket_read: read_ok</div><div><br></div><div><br></div><div>As you can see the first 4k is received (with the body being 'asdasd...') and then it just spins in the main service loop.</div><br><div>> From: andy.green@linaro.org<br>> Date: Thu, 2 Jul 2015 20:41:13 +0100<br>> To: andy.green@linaro.org<br>> CC: libwebsockets@ml.libwebsockets.org<br>> Subject: Re: [Libwebsockets] libwebsockets-1.4 HTTP server help with huge   http chunks<br>> <br>> Hi Ash,<br>> <br>> I think I've found your problem, there is an attempt at a fix here:<br>> <br>> https://github.com/warmcat/libwebsockets/commit/fc10940ec1c1e974a94eb5ed171f1aedaafef93e<br>> <br>> Cheers,<br>> <br>> Roger<br>> <br>> <br>> <br>> On Thu, Jul 2, 2015 at 6:42 PM, Ash 20001 <andy.green@linaro.org> wrote:<br>> > I have confirmed this issue exists on all versions of websockets > 1.3 and<br>> > on the windows builds besides linux builds.<br>> ><br>> > This sounds like a bug in libwebsockets when using HTTP protocol over HTTPS<br>> > on the server side.<br>> > If anyone has any insight into how to fix the problem, it would be greatly<br>> > appreciated.<br>> ><br>> > ________________________________<br>> > From: andy.green@linaro.org<br>> > To: libwebsockets@ml.libwebsockets.org<br>> > Date: Tue, 30 Jun 2015 15:19:10 -0700<br>> ><br>> > Subject: Re: [Libwebsockets] libwebsockets-1.4 HTTP server help with huge<br>> > http chunks<br>> ><br>> > Sorry for the other emails, I have much easier reproducible steps for this<br>> > that maybe you guys can help me with:<br>> ><br>> > 1. Build 1.4 test-server binary.<br>> > 2. Run it with --ssl option.<br>> > 3. Use an HTTP client on another machine, like Advanced Rest Client to send<br>> > a POST data to https://<your server>:<your ssl port>. Start with under 4k<br>> > sized payloads and notice it works and server receives both BODY and BODY<br>> > COMPLETION.<br>> > 4. Change to higher than 4k POST data payload, and notice that the server<br>> > only receives the first 4k chunk and then gets stuck.<br>> ><br>> ><br>> ><br>> > ________________________________<br>> > From: andy.green@linaro.org<br>> > To: libwebsockets@ml.libwebsockets.org<br>> > Date: Tue, 30 Jun 2015 00:53:59 -0700<br>> > Subject: Re: [Libwebsockets] libwebsockets-1.4 HTTP server help with huge<br>> > http chunks<br>> ><br>> > One thing I forgot to mention: this only happens on HTTPS, not HTTP. HTTP<br>> > works fine. Any ideas why HTTPS would be doing this? It gets the first 4K<br>> > data just fine, just hangs after that and never gets the second or more 4K<br>> > data.<br>> ><br>> > ________________________________<br>> > From: andy.green@linaro.org<br>> > To: libwebsockets@ml.libwebsockets.org<br>> > Date: Mon, 29 Jun 2015 22:08:58 -0700<br>> > Subject: [Libwebsockets] libwebsockets-1.4 HTTP server help with huge http<br>> > chunks<br>> ><br>> > Hello,<br>> > I am trying to host an HTTP server (using the test-server.c sample code). I<br>> > have a client app that sends big chunks of HTTP data (around 10k-15k) to the<br>> > server.<br>> > The server doesn't seem to parse the body fragments well.<br>> ><br>> > By default libwebsockets delivers data in 4k chunks. This seems to work fine<br>> > for chunks less than 8k after adding libbwesockets_return_http_status with<br>> > HTTP_OK after each LWS_CALLBACK_HTTP_BODY message. In the case of less than<br>> > 8K and greater than 4K, I get two LWS_CALLBACK_HTTP_BODY message, the first<br>> > with 4k and then the remaining amount in the next message. Then I received<br>> > the LWS_CALLBACK_HTTP_BODY_COMPLETION message.<br>> ><br>> > But If I try something bigger than 8k, I never get the 3rd or higher chunk<br>> > in the BODY Message, and sometimes the whole client app errors out.  I<br>> > cannot find any sample out there to properly handle large HTTP chunks. I am<br>> > hoping maybe you guys might have something out there.<br>> ><br>> > Also, changing the rx_buffer_size in the http protocol seems to make no<br>> > difference.<br>> ><br>> > Thanks for any help!!<br>> ><br>> > _______________________________________________ Libwebsockets mailing list<br>> > Libwebsockets@ml.libwebsockets.org<br>> > http://ml.libwebsockets.org/mailman/listinfo/libwebsockets<br>> ><br>> > _______________________________________________ Libwebsockets mailing list<br>> > Libwebsockets@ml.libwebsockets.org<br>> > http://ml.libwebsockets.org/mailman/listinfo/libwebsockets<br>> ><br>> > _______________________________________________ Libwebsockets mailing list<br>> > Libwebsockets@ml.libwebsockets.org<br>> > http://ml.libwebsockets.org/mailman/listinfo/libwebsockets<br>> ><br>> > _______________________________________________<br>> > Libwebsockets mailing list<br>> > Libwebsockets@ml.libwebsockets.org<br>> > http://ml.libwebsockets.org/mailman/listinfo/libwebsockets<br>> ><br>> _______________________________________________<br>> Libwebsockets mailing list<br>> Libwebsockets@ml.libwebsockets.org<br>> http://ml.libwebsockets.org/mailman/listinfo/libwebsockets<br></div></div>                                           </div></body>
</html>