[Libwebsockets] Next lws release coming up

Andy Green andy at warmcat.com
Thu Apr 26 13:33:37 CEST 2018

On 04/26/2018 05:18 PM, Roger Light wrote:
> Hi Andy,
> I've not found anything broken in my tests on Linux so far. Is there
> any chance you could update the ABI timeline to the compare 2.4.2 and
> the current master?
> https://libwebsockets.org/abi/timeline/libwebsockets/index.html

This is living again... however notice that most of the changes it 
"sees" are due to changed cmake defaults, turning off things most people 
aren't using


lws_ext_parse_options ( struct lws_extension const* ext, struct lws* 
wsi, void* ext_user, struct lws_ext_options const* opts, char const* in, 
int len )

LWS_WITH_GENHASH now defaults to OFF

lws_genhash_destroy ( struct lws_genhash_ctx* ctx, void* result )
lws_genhash_init ( struct lws_genhash_ctx* ctx, int type )
lws_genhash_size ( int type )
lws_genhash_update ( struct lws_genhash_ctx* ctx, void const* in, size_t 
len )

Actually gone

- lws_read ( struct lws* wsi, unsigned char* buf, lws_filepos_t len )

- lws_alloc_vfs_file ( struct lws_context* context, char const* 
filename, uint8_t** buf, lws_filepos_t* amount )

lws_read() was asked to be exported by a user years ago, for external 
poll, it no longer has any useful meaning to be exported.

Similarly before release, there will be an soname bump.  So its 
complaints about changed constants are moot since it will require a 
recompile anyway (and 7 of those, the ones beginning _, are only used 
internally).  Same thing with its other "problems" about public struct 
sizes changing.


> Cheers,
> Roger
> On 25 April 2018 at 08:57, Andy Green <andy at warmcat.com> wrote:
>> Hi -
>> In the next days I plan to release a new stable version of lws.
>> Since v2.4, I added a bunch of CI QA, currently 1.2K tests per push
>> including all working autobahn client + server.  If any of those tests fail
>> it breaks the travis build.
>> Currently two sets of test are broken in autobahn itself:
>> https://github.com/crossbario/autobahn-testsuite/issues/71
>> since Aug 2017, ie, basically Autobahn is unmaintained.  Autobahn long ago
>> decided to test for a couple of useless things not in RFC6455, 10 x pings
>> spammed getting 10 x pong results pipelined, which is not what anybody
>> actually uses ws ping for and is not in the ws spec at all.  So two
>> individual tests related to that we do not perform.  Otherwise it is
>> everything else, 480 tests each for client and server mode.
>> attack.sh is also run on every commit, which tests hundreds of http parsing
>> variants and if you did not yet notice, I added 32 x "minimal examples"
>> https://github.com/warmcat/libwebsockets/tree/master/minimal-examples
>> which largely replace the test apps and are build-tested plus 29 scenarios
>> of those also runtime-tested each push.
>> The CI improvements has enabled a giant cleanup and refactor of the code
>> structure over the last weeks... some of the code is 8 years old and overdue
>> for some sprucing up.  To prepare for the future, I introduced "roles",
>> which encapsulate in the source the different domains lws covers, like h1,
>> h2, ws, raw etc.
>> These are now implemented though an ops-style structs that defines how a wsi
>> that became bound to a particular role actually does thing.  For example,
>> all roles have their user code send things by lws_write()... but now that
>> boils down to a ->write_role_protocol() callback on the role struct the wsi
>> is bound to.  The different roles do whatever their role requires to prepare
>> the payload and send it... lws_write() itself is now just a few lines.
>> Along with that the roles have become more controllable for build.  Even ws
>> support, via LWS_ROLE_WS in cmake, is now optional.
>> Your can read some docs about how to add new roles here
>> https://github.com/warmcat/libwebsockets/tree/master/lib/roles
>> It would be great if lws users confirm current master against their codebase
>> and let me know about any problems.  That isn't what has happened in the
>> past, people just want to find version x.0 is always perfect without them
>> having to do anything.
>> Please give even a little back by looking for problems with what will become
>> the new release now, or even better actually contributing something.
>> -Andy
>> _______________________________________________
>> Libwebsockets mailing list
>> Libwebsockets at ml.libwebsockets.org
>> https://libwebsockets.org/mailman/listinfo/libwebsockets

More information about the Libwebsockets mailing list