<div dir="ltr">Hello Andy,<div><br></div><div>I applied the changes from your patch but I didn't manage to make the POST example work...</div><div><br></div><div>What I did is just the following changes from the CmakeLists.txt:</div><div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">option(LWS_WITH_LIBEV "Compile with support for libev" ON)#change<br>option(LWS_WITH_LIBUV "Compile with support for libuv" ON)#change<br>option(LWS_WITH_CGI "Include CGI (spawn process with network-connected stdin/out/err) APIs" ON)#change<br>option(LWS_WITH_LWSWS "Libwebsockets Webserver" ON)#change<br>option(LWS_WITH_PLUGINS "Support plugins for protocols and extensions" ON)#change</blockquote></div><div class="gmail_extra">And I also moved the share folder in the bin folder in order to make webserver files reachables</div><div class="gmail_extra"><br></div><div class="gmail_extra">No reaction from Firefox, here the server logs:</div><div class="gmail_extra"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">lwsts[17529]: LWS_CALLBACK_WS_PEER_INITIATED_CLOSE: len 2<br>lwsts[17529]:  0: 0x03<br>lwsts[17529]:  1: 0xE9<br>lwsts[17529]: CLOSING pss 0x239d2b0 ********<br>lwsts[17529]: cache_len 94<br>lwsts[17529]: lws_http_serve: /formtest<br>lwsts[17529]: HTTP connect from localhost (127.0.0.1)<br>lwsts[17529]: LWS_CALLBACK_HTTP_BODY: len 22<br>lwsts[17529]: LWS_CALLBACK_HTTP_BODY_COMPLETION<br>lwsts[17529]: 127.0.0.1 - - [15/May/2016:21:26:04 +0200] "POST /formtest http/1.1" 303 116 Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:46.0) Gecko/20100101 Firefox/46.0<br>lwsts[17529]: lws_http_serve: /postresults<br>lwsts[17529]: HTTP connect from localhost (127.0.0.1)<br>lwsts[17529]: ****** 23775b0 Sending new, pending truncated ...<br>lwsts[17529]: 127.0.0.1 - - [15/May/2016:21:26:04 +0200] "GET /postresults http/1.1" 200 155 Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:46.0) Gecko/20100101 Firefox/46.0</blockquote><div>Error page "The localhost page isn’t working. localhost unexpectedly closed the connection." from Chromium, here the server logs:</div><div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">lwsts[17529]: lws_http_serve: /formtest<br>lwsts[17529]: HTTP connect from localhost (127.0.0.1)<br>lwsts[17529]: LWS_CALLBACK_HTTP_BODY: len 22<br>lwsts[17529]: LWS_CALLBACK_HTTP_BODY_COMPLETION<br>lwsts[17529]: 127.0.0.1 - - [15/May/2016:21:27:12 +0200] "POST /formtest http/1.1" 303 116 Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/49.0.2623.108 Chrome/49.0.2623.108 Safari/537.36<br>lwsts[17529]: lws_http_serve: /postresults<br>lwsts[17529]: HTTP connect from localhost (127.0.0.1)<br>lwsts[17529]: ****** 23775b0 Sending new, pending truncated ...<br>lwsts[17529]: 127.0.0.1 - - [15/May/2016:21:27:12 +0200] "GET /postresults http/1.1" 200 155 Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/49.0.2623.108 Chrome/49.0.2623.108 Safari/537.36<br>lwsts[17529]: LWS_CALLBACK_WS_PEER_INITIATED_CLOSE: len 2<br>lwsts[17529]:  0: 0x03<br>lwsts[17529]:  1: 0xE9<br>lwsts[17529]: CLOSING pss 0x239d280 ********<br>lwsts[17529]: cache_len 94<br>lwsts[17529]: lws_http_serve: /postresults<br>lwsts[17529]: HTTP connect from localhost (127.0.0.1)<br>lwsts[17529]: ****** 23775b0 Sending new, pending truncated ...<br>lwsts[17529]: 127.0.0.1 - - [15/May/2016:21:27:12 +0200] "GET /postresults http/1.1" 200 133 Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/49.0.2623.108 Chrome/49.0.2623.108 Safari/537.36</blockquote></div><div><br></div></div><div class="gmail_extra"><br></div><div class="gmail_extra">Best regards,</div><div class="gmail_extra">Thomas</div><div class="gmail_extra"><br></div><div class="gmail_extra">
<br><div class="gmail_quote">2016-05-09 4:15 GMT+02:00 Andy Green <span dir="ltr"><<a href="mailto:andy@warmcat.com" target="_blank">andy@warmcat.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span class=""><br>
<br>
On 05/08/2016 06:45 PM, Andy Green wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>
<br>
On 05/08/2016 03:29 PM, Colin Adams wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
Trying out the v 2.0 test-server - everything works except in the POST<br>
tab, pressing on the "Send the form" button (apparently) does nothing.<br>
<br>
Might this be because of a compile-time #define needed?<br>
</blockquote>
<br>
No... it's because the test-server-v2.0.c just uses a mount to do the<br>
HTTP serving from inside the library, without any user code involved.<br>
<br>
That covers everything "normal" the test server does with HTTP, but the<br>
POST needs to be handled by user code.<br>
<br>
I'll have a think about how to handle that nicely.<br>
</blockquote>
<br></span>
I pushed a patch on master<br>
<br>
<a href="https://github.com/warmcat/libwebsockets/commit/b24aaeb82261c480ab8e03baebda7aebedbc7d87" rel="noreferrer" target="_blank">https://github.com/warmcat/libwebsockets/commit/b24aaeb82261c480ab8e03baebda7aebedbc7d87</a><br>
<br>
that introduces a new mount type "callback://".<br>
<br>
Using that you can associate areas of your URL space with the callback of a named protocol.  In lwsws config JSON, it looks like this<br>
<br>
       {<br>
        "mountpoint": "/formtest",<br>
        "origin": "callback://protocol-post-demo"<br>
       }<br>
<br>
The patch also adds a new protocol plugin called "protocol-post-demo", whose callback handles the form post test in the test html.<br>
<br>
test-server-v2.0.c also gets an extra mount in code to use it.<br>
<br>
static const struct lws_http_mount mount_post = {<br>
        NULL,           /* linked-list pointer to next*/<br>
        "/formtest",            /* mountpoint in URL namespace on this vhost */<br>
        "protocol-post-demo",   /* handler */<br>
        NULL,   /* default filename if none given */<br>
        NULL,<br>
        0,<br>
        0,<br>
        0,<br>
        0,<br>
        0,<br>
        LWSMPRO_CALLBACK,       /* origin points to a callback */<br>
        9,                      /* strlen("/formtest"), ie length of the mountpoint */<br>
};<br>
<br>
With that, it's possible to cleanly map URL namespace to callbacks by name, and the test-server-v2.0 can do the POST part of the demo html nicely.<span class=""><font color="#888888"><br>
<br>
-Andy</font></span><div class=""><div class="h5"><br>
<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
-Andy<br>
<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>
_______________________________________________<br>
Libwebsockets mailing list<br>
<a href="mailto:Libwebsockets@ml.libwebsockets.org" target="_blank">Libwebsockets@ml.libwebsockets.org</a><br>
<a href="http://libwebsockets.org/mailman/listinfo/libwebsockets" rel="noreferrer" target="_blank">http://libwebsockets.org/mailman/listinfo/libwebsockets</a><br>
<br>
</blockquote>
_______________________________________________<br>
Libwebsockets mailing list<br>
<a href="mailto:Libwebsockets@ml.libwebsockets.org" target="_blank">Libwebsockets@ml.libwebsockets.org</a><br>
<a href="http://libwebsockets.org/mailman/listinfo/libwebsockets" rel="noreferrer" target="_blank">http://libwebsockets.org/mailman/listinfo/libwebsockets</a><br>
</blockquote>
_______________________________________________<br>
Libwebsockets mailing list<br>
<a href="mailto:Libwebsockets@ml.libwebsockets.org" target="_blank">Libwebsockets@ml.libwebsockets.org</a><br>
<a href="http://libwebsockets.org/mailman/listinfo/libwebsockets" rel="noreferrer" target="_blank">http://libwebsockets.org/mailman/listinfo/libwebsockets</a><br>
</div></div></blockquote></div><br></div></div>