ABI
Tracker

(libwebsockets)




Changelog from Git



commit 8ae67eceba7ab1ba6bc513ce7b688ba3d752a501
Author: Andy Green <andy@warmcat.com>
Date:   2018-09-02 14:35:37 +0800

    threadpool

commit 1c42ff27365be8fa77906602310263ba3c2899c5
Author: Andy Green <andy@warmcat.com>
Date:   2018-09-02 19:23:40 +0800

    client: libuv: fix close handling during redirect
    
    During client redirect we "reset" the wsi to the redirect address,
    involving closing the current fd that was told to redirect (it will
    usually be a completely different server or port).
    
    With libuv and its two-stage close that's not trivial.  This solves
    the problem we will "reset" (overwrite) where the handle lives in the
    wsi with new a new connection / handle by having it copied out into
    an allocated watcher struct, which is freed in the uv close callback.
    
    To confirm it the minimal ws client example gets some new options, the
    original problem was replicated with this
    
    $ lws-minimal-ws-client-echo -s invalid.url.com -p 80
    
    https://github.com/warmcat/libwebsockets/issues/1390

commit 9df474a010ffa78c9952dde1686eb75c52ea7bc4
Author: Andy Green <andy@warmcat.com>
Date:   2018-09-02 07:13:56 +0800

    logging: ellipsisize logs longer than our line buffer
    
    Currently the line buffer for vsnprintf() is 256, lines longer than that
    end abruptly without a CRLF.
    
    Change it to end with "...\n\0" when it truncates the line.
    
    CSP header additions, logged on vhost init, longer than this are going
    to become normal...

commit e395cb02c9bf11e2f0cd2dcde722f225b1e3249c
Author: Andy Green <andy@warmcat.com>
Date:   2018-09-02 06:51:16 +0800

    log client IP of well-wishers
    
    Although getting a million of these doesn't make any trouble for lws, the
    source should be logged.

commit ef896e3bb6720d82f462e3ca81f47fb04cfcb3ef
Author: Andy Green <andy@warmcat.com>
Date:   2018-09-02 06:47:37 +0800

    ws role: wsi ws may not have been allocated by time of close

commit e051e67b056ada4c208707da703057ac41ce181b
Author: Andy Green <andy@warmcat.com>
Date:   2018-08-30 06:00:28 +0800

    genhmac: expose as VISIBLE

commit 71cde1eca297229d42915d14600b26c7c10a27c3
Author: Sebastián Katzer <katzer@users.noreply.github.com>
Date:   2018-08-29 13:29:07 +0200

    Fix Iphlpapi.h -> iphlpapi.h
    
    If you cross compile for Windows you will get an error otherwise that the header cannot be found.
    See here for code example from microsoft: https://docs.microsoft.com/en-us/windows/desktop/iphlp/creating-a-basic-ip-helper-application

commit 43f0ce7f7e66e5e1ae0ac6fbf6b6f03e5ed2459f
Author: Andy Green <andy@warmcat.com>
Date:   2018-08-29 07:15:34 +0800

    csp: update lwsgs

commit 564c781c374c22a189616e333ea665fd0dc947d5
Author: Andy Green <andy@warmcat.com>
Date:   2018-08-28 19:51:19 +0800

    ws role: use protocol bind and unbind and transition earlier
    
    Now individual role callbacks are added in an earlier patch for protocol
    bind and unbind, change the ws upgrade action to use the generic protocol
    bind and unbind apis so the corresponding callbacks are issued for ws.

commit 7c39143d2f93b83de656437f8ef593f821cfaefa
Author: Martin Milata <martin@martinmilata.cz>
Date:   2018-08-27 14:47:42 +0200

    Ignore unknown headers in multipart file upload
    
    https://github.com/warmcat/libwebsockets/pull/1385

commit b98e7e47bf5c3adb5384fe849754ed98c3cda973
Author: Andy Green <andy@warmcat.com>
Date:   2018-08-25 12:27:00 +0800

    http: enlarge headers buffers since they may meet large headers from vhost config

commit 3c53bfafe92fa6e3a762b94dc4a1bb34b3919d1d
Author: Andy Green <andy@warmcat.com>
Date:   2018-08-25 07:22:36 +0800

    test-app: upgrade test.html to have separate css and js for CSP

commit 6ad382977fbb05199de92b880cfc434247f5373c
Author: Andy Green <andy@warmcat.com>
Date:   2018-08-25 06:38:28 +0800

    LWS_WITH_STATS: only report ssl accept delay we have a start time for

commit d4f5427001bcd66068d6500146be3788f9c4a238
Author: Andy Green <andy@warmcat.com>
Date:   2018-08-25 06:06:27 +0800

    CSP: Firefox bans default SVG styles
    
    Firefox has a bug for 2 years
    
    https://bugzilla.mozilla.org/show_bug.cgi?id=1262842
    
    where a strict content-security-policy that is correctly followed
    wrongly also defeats inline style inside SVG.
    
    Apply the workaround told by the GIMP guys on the bug to convert
    SVG styles to XML at export.

commit ab8b748a76452970b580da2aafbaae40e968f87a
Author: Andy Green <andy@warmcat.com>
Date:   2018-08-25 05:43:31 +0800

    LWS_WITH_STATS: clean refactor dust
    
    https://github.com/warmcat/libwebsockets/issues/1383

commit faa33c8ab58bd718fec9b8990dcbf69844b28e63
Author: Andy Green <andy@warmcat.com>
Date:   2018-08-24 16:00:33 +0800

    lejp-conf: allow header value part to exceed one string chunk

commit d716ea6936937df5682ef37d4f263efb451e817f
Author: Andy Green <andy@warmcat.com>
Date:   2018-08-24 16:02:32 +0800

    lejp: always allow an extra byte at the end of the string buffer for NUL

commit 9fe42797f1027ed363f68a8d81d40f186f7ceb6c
Author: Andy Green <andy@warmcat.com>
Date:   2018-08-24 14:43:50 +0800

    h2: use vhost headers with tolower adaptation
    
    h2 was not applying vhost headers, make it do so.
    
    Also adapt any header names to lower-case as required by h2.

commit f2fc3488fdb432db8396e9150bbcc0fa89870376
Author: Andy Green <andy@warmcat.com>
Date:   2018-08-24 12:20:38 +0800

    unix skt: default on

commit 1b42906e8fdba1a04d03ba10e281addbacbc9559
Author: Andy Green <andy@warmcat.com>
Date:   2018-08-23 11:48:17 +0800

    clean: coverity

commit 9714ffda437e50ff31edcc920b4e22253d2e57d2
Author: Andy Green <andy@warmcat.com>
Date:   2018-08-23 11:29:45 +0800

    clean: solve type conversion warnings for appveyor

commit 89cbce5e0e23a7d4bd604609475df65475f66243
Author: Andy Green <andy@warmcat.com>
Date:   2018-08-23 09:46:01 +0800

    libwebsockets.h: split out into a dir of sub-includes included by libwebsockets.h
    
    This has no effect on user code or backward compatibility.
    
    It moves the in-tree public api header libwebsockets.h from ./lib
    to ./include, and introduces a dir ./include/libwebsockets/
    
    The single public api header is split out into 31 sub-headers
    in ./include/libwebsockets.  ./include/libwebsockets.h contains
    some core types and platform adaptation code, but the rest of it
    is now 31 #include <libwebsockets/...>
    
    At install time, /usr/[local/]include/libwebsockets.h is installed
    as before, along now with the 31 sub-headers in ...include/libwebsockets/
    
    There's no net effect on user code.
    
    But the api header is now much easier to maintain and study, with 31
    topic-based sub headers.

commit 092dbe285aa34faa98a1e4ce2e25f439023f599d
Author: Andy Green <andy@warmcat.com>
Date:   2018-09-02 14:43:05 +0800

    http: compression methods
    
    Add generic http compression layer eanbled at cmake with LWS_WITH_HTTP_STREAM_COMPRESSION.
    
    This is wholly a feature of the HTTP role (used by h1 and h2 roles) and doesn't exist
    outside that context.
    
    Currently provides 'deflate' and 'br' compression methods for server side only.
    
    'br' requires also -DLWS_WITH_HTTP_BROTLI=1 at cmake and the brotli libraries (available in
    your distro already) and dev package.
    
    Other compression methods can be added nicely using an ops struct.
    
    The built-in file serving stuff will use this is the client says he can handle it, and the
    mimetype of the file either starts with "text/" (html and css etc) or is the mimetype of
    Javascript.
    
    zlib allocates quite a bit while in use, it seems to be around 256KiB per stream.  So this
    is only useful on relatively strong servers with lots of memory.  However for some usecases
    where you are serving a lot of css and js assets, it's a nice help.
    
    The patch performs special treatment for http/1.1 pipelining, since the compression is
    performed on the fly the compressed content-length is not known until the end.  So for h1
    only, chunked transfer-encoding is automatically added so pipelining can continue of the
    connection.
    
    For h2 the chunking is neither supported nor required, so it "just works".
    
    User code can also request to add a compression transform before the reply headers were
    sent using the new api
    
    LWS_VISIBLE int
    lws_http_compression_apply(struct lws *wsi, const char *name,
                               unsigned char **p, unsigned char *end, char decomp);
    
    ... this allows transparent compression of dynamically generated HTTP.  The requested
    compression (eg, "deflate") is only applied if the client headers indicated it was
    supported, otherwise it's a NOP.
    
    Name may be NULL in which case the first compression method in the internal table at
    stream.c that is mentioned as acceptable by the client will be used.
    
    NOTE: the compression translation, same as h2 support, relies on the user code using
    LWS_WRITE_HTTP and then LWS_WRITE_HTTP_FINAL on the last part written.  The internal
    lws fileserving code already does this.

commit 90e6e65bff5b472f9d14bab33b2de97fce0fbb7e
Author: Andy Green <andy@warmcat.com>
Date:   2018-08-20 12:02:26 +0800

    partial: replace ad-hoc code with a wsi buflist_out
    
    Various kinds of input stashing were replaced with a single buflist before
    v3.0... this patch replaces the partial send arrangements with its own buflist
    in the same way.
    
    Buflists as the name says are growable lists of allocations in a linked-list
    that take care of book-keeping what's added and removed (even if what is
    removed is less than the current buffer on the list).
    
    The immediate result is that we no longer have to freak out if we had a partial
    buffered and new output is coming... we can just pile it on the end of the
    buflist and keep draining the front of it.
    
    Likewise we no longer need to be rabid about reporting multiple attempts to
    send stuff without going back to the event loop, although not doing that
    will introduce inefficiencies we don't have to term it "illegal" any more.
    
    Since buflists have proven reliable on the input side and the logic for dealing
    with truncated "non-network events" was already there this internal-only change
    should be relatively self-contained.

commit 23e433ac1b967a41f6f88b1539c0b79a7be78f33
Author: Andy Green <andy@warmcat.com>
Date:   2018-08-20 07:44:20 +0800

    minimal: adapt for ping test over https

commit 2cddfc963be2aba0bb898c221d119a28d383a731
Author: Frank May <git+commit@f69m.de>
Date:   2018-08-19 06:43:31 +0800

    windows: fix timeout between writes on Windows
    
    After servicing a writable socket, we need to set timeout_ms
    to zero. This makes WSAWaitForMultipleEvents() return immediately
    after checking events.

commit 248826d7fc091466e654148a10750aaa9da7b8ba
Author: Frank May <git+commit@f69m.de>
Date:   2018-08-19 06:43:23 +0800

    windows: Remove useless code
    
    WSASetEvent(pt->events) just makes WSAWaitForMultipleEvents()
    return, it will not set LWS_POLLOUT in pfd->revents and thus
    has IMHO no effect. If WSAWaitForMultipleEvents() will set
    LWS_POLLOUT it will also signal the event automatically.

commit e17820cf67572496715e3e85baa1c298faff26bb
Author: Frank May <git+commit@f69m.de>
Date:   2018-08-19 06:43:14 +0800

    windows: fix possible crash
    
    Checking for (!wsi) does not make sense, if wsi is
    dereferenced in the line above.

commit fab4bff4f643da39f095646734d464ed49694b67
Author: Frank May <git+commit@f69m.de>
Date:   2018-08-19 06:43:06 +0800

    windows: Ignore Visual Studio internal files

commit 90089af508cab5c59332ddccb2acca4d86346690
Author: Badbaljan <fredrik@badbaljan.se>
Date:   2018-08-15 21:27:41 +0200

    esp32: change make flash-related names to not conflict with idf

commit 5c0b0450f21ef15181a29b9b690348219866cbbc
Author: Andy Green <andy@warmcat.com>
Date:   2018-08-18 14:11:29 +0800

    client: bind and drop protocol like server
    
    HTTP server protocols have had for a while LWS_CALLBACK_HTTP_DROP/BIND_PROTOCOL
    callbacks that mark when a wsi is attched to a protocol and detached.
    
    It turns out this is generally useful for everything to know when a wsi is
    joining a protocol and definitively completely finished with a protocol.
    
    Particularly with client wsi where you provided the userdata externally, this
    makes a clear point to free() it on the protocol binding being dropped.
    
    This patch adds protocol bind / unbind callbacks to the role definition and
    lets them operate on all roles.  For the various roles
    
    HTTP server: LWS_CALLBACK_HTTP_BIND/DROP_PROTOCOL as before
    HTTP client: LWS_CALLBACK_CLIENT_HTTP_BIND/DROP_PROTOCOL
    ws server:   LWS_CALLBACK_WS_SERVER_BIND/DROP_PROTOCOL
    ws client:   LWS_CALLBACK_WS_CLIENT_BIND/DROP_PROTOCOL
    raw file:    LWS_CALLBACK_RAW_FILE_BIND/DROP_PROTOCOL
    raw skt:     LWS_CALLBACK_RAW_SKT_BIND/DROP_PROTOCOL

commit d461f46a97b30ce4ed11706440e4b95b73b7e951
Author: Andy Green <andy@warmcat.com>
Date:   2018-08-16 19:10:32 +0800

    libwebsockets.h: clean out some boilerplate better put in core/private.h
    
    https://github.com/warmcat/libwebsockets/issues/1370

commit 8de6e5fcf07c57cd53e759dfad96ecee219b6725
Author: Andy Green <andy@warmcat.com>
Date:   2018-08-15 12:49:32 +0800

    client: allow pipelined http to call LWS_CALLBACK_CLOSED_CLIENT_HTTP

commit 956bb4e2551931073675ec8a3a01805ad023ecc5
Author: Andy Green <andy@warmcat.com>
Date:   2018-08-15 09:23:35 +0800

    lws_pvo_get_str

commit 79397b21a38d263263a65abb69b8e1fffd326796
Author: Andy Green <andy@warmcat.com>
Date:   2018-08-14 19:09:23 +0800

    README.md: serve from repo

commit c3def0e527fea796a8c834bd262911520f639c06
Author: Andy Green <andy@warmcat.com>
Date:   2018-08-13 16:49:58 +0800

    etag: send cache-control even so

commit b7e05ad590f54fff2e30bddd7701e3de69fdc858
Author: Andy Green <andy@warmcat.com>
Date:   2018-08-10 14:14:31 +0800

    mailmap

commit f37454ab17e95c04537035ab972f3958d6ba6619
Author: Andy Green <andy@warmcat.com>
Date:   2018-08-05 18:18:40 +0800

    cmake: LEJF and LEJP_CONF now on by default

commit f44e38f148e7a1fde7b17ef6f0e22c092dee89e6
Author: Andy Green <andy@warmcat.com>
Date:   2018-08-02 19:13:53 +0800

    unix socket: fixes and improvements
    
    Auto-remove any unix socket file already there.
    
    Correctly identify if it's in use per-vhost.
    
    Make the peer-limits stuff ignore it.

commit 9df3557ef966f9596c37bb1ca65ec16fab251194
Author: Andy Green <andy@warmcat.com>
Date:   2018-08-02 19:15:19 +0800

    lws_get_effective_uid_gid
    
    This helper lets you find out the eventual uid / gid lws will run
    under before the root privileges are actually dropped

commit 69d9cf2e6b608a2460c41f118a00ac73d1606ee0
Author: Andy Green <andy@warmcat.com>
Date:   2018-08-01 06:52:03 +0800

    coverity: cleanup

commit 94e375f552c4ae09138a2c2bd95583a262591924
Author: Andy Green <andy@warmcat.com>
Date:   2018-08-01 06:31:41 +0800

    lejp: improve bogus JSON underrun detection
    
    https://github.com/warmcat/libwebsockets/issues/1357

commit f285fe4a60a48d8304682cd7018fdb2fa99ea2ec
Author: James Chicca <James.Chicca@TradingTechnologies.com>
Date:   2018-07-30 15:24:16 -0500

    vhost protocol timers: SMP threadsafety
    
    From https://github.com/warmcat/libwebsockets/commit/35923abbf37ec5e9190032ab9e4438a9461e2974.patch
    
    Adapted by AG to deal with OOM and use the existing vh timer
    struct.

commit de21a5b5b94e1ebacc65f8be27690fe1ec54071a
Author: Andy Green <andy@warmcat.com>
Date:   2018-07-31 13:21:56 +0800

    protocol_init: make errors fatal

commit 6f1e67cf91e5cf9faa0490f293ab6fac6aff6a07
Author: Andy Green <andy@warmcat.com>
Date:   2018-07-31 13:22:24 +0800

    appveyor: stop default vc build
    
    Suddenly appveyor just says this
    
    Build started
    git clone -q --branch=master https://github.com/warmcat/libwebsockets.git C:\projects\libwebsockets
    git checkout -qf e035ceb36e0b79e85bc18b313e8f46eeadd360b6
    The build phase is set to "MSBuild" mode (default), but no Visual Studio project or solution files were found in the root directory. If you are not building Visual Studio project switch build mode to "Script" and provide your custom build command.

commit 7d21bd2ea80c3b367ea05791414002ac648d4aae
Author: Andy Green <andy@warmcat.com>
Date:   2018-07-30 15:22:33 +0800

    svg: README overview

commit cfeb196479f29294c05cf0e4dd0ecef7d0043405
Author: Andy Green <andy@warmcat.com>
Date:   2018-07-25 16:26:41 +0800

    client: SMP: associate client with tsi of thread creating client connection
    
    1) This moves the service tid detection stuff from context to pt.
    
    2) If LWS_MAX_SMP > 1, a default pthread tid detection callback is provided
       on the dummy callback.  Callback handlers that call through to the dummy
       handler will inherit this.  It provides an int truncation of the pthread
       tid.
    
    3) If there has been any service calls on the service threads, the pts now
       know the low sizeof(int) bytes of their tid.  When you ask for a client
       connection to be created, it looks through the pts to see if the calling
       thread is a pt service thread.  If so, the new client is set to use the
       same pt as the caller.

commit c5012fac1def0f2be90136f642a3a8814a21274b
Author: Andy Green <andy@warmcat.com>
Date:   2018-07-23 21:17:33 +0800

    client: handle oom4 fail path for vhost dll_active_client_conns list
    
    Client connections can put themselves on the active client list
    before they have survived the client connect process past oom4,
    which can fail out without close processing.
    
    So ensure the wsi destruction on oom4 removes it from the list.

commit a03dd40e62649512adbf69582a5bea1a2f1a5c38
Author: Andy Green <andy@warmcat.com>
Date:   2018-08-14 08:00:25 +0800

    plugins: gitws libjsongit2 support
    
    This adds a plugin that interfaces to libjsongit2
    
    https://warmcat.com/git/libjsongit2
    
    to provide a per-vhost service for presenting bare git repos in a
    web interface.

commit 12ec2314118a5a1af8cbc85627d57c63859886ac
Author: Andy Green <andy@warmcat.com>
Date:   2018-07-23 17:18:47 +0800

    client: ipv6 handle failed ads lookup

commit 2697be84399db391faea0c84d2a5f1b1e4b9478c
Author: Andy Green <andy@warmcat.com>
Date:   2018-07-21 10:26:13 +0800

    content_length zero: server
    
    https://github.com/warmcat/libwebsockets/issues/1337

commit d573a06eb6d57f3f10003284161974d924ab6056
Author: ecionis <ecionis@github.user.invalid.com>
Date:   2018-07-21 10:26:47 +0800

    content_length zero: client
    
    https://github.com/warmcat/libwebsockets/issues/1337

commit 7019b56ec9b836bc695ed3308a0d8615ca13ade9
Author: James Chicca <James.Chicca@TradingTechnologies.com>
Date:   2018-07-19 09:36:20 -0500

    lws_vhost_bind_wsi: avoid if already bound to same wsi
    
    if wsi->vhost == vhost then it is already bound to that
     vhost. doubling binding causes a problem during shutdown
    by trashing the reference counting.

commit 991241905c3b0b28519dd1cf5890a737091d7eef
Author: Andy Green <andy@warmcat.com>
Date:   2018-07-20 08:39:00 +0800

    client: use effective wsi for some callbacks

commit 6677425272b4d11dd30ffb2a2ee9e4add71dd86f
Author: Andy Green <andy@warmcat.com>
Date:   2018-07-19 15:58:24 +0800

    minimal: kill stray symlink
    
    https://github.com/warmcat/libwebsockets/issues/1344

commit 97f4b6906bdf56295b533f4bdd7862ef2ae6d3bb
Author: Andy Green <andy@warmcat.com>
Date:   2018-07-19 06:12:31 +0800

    client: use lws_strdup for client_hostname_copy
    
    https://github.com/warmcat/libwebsockets/issues/1343

commit 0222cd25b07a0e00cfec480f98632c2e231adb88
Author: Andy Green <andy@warmcat.com>
Date:   2018-07-17 18:28:23 +0800

    lws_get_peer_write_allowance: cope with no role callback for it
    
    https://github.com/warmcat/libwebsockets/issues/1339

commit ff2b1eab369ad1d8480a094f030df1c0a8f21713
Author: Dmytro Ivanov <jimon.j1m0n@gmail.com>
Date:   2018-07-16 11:45:55 +0200

    tls:Implement client_ssl_ca_mem/client_ssl_ca_mem_len to load root CA certs from memory.

commit f85cc83de3be7510832fde4089f5369f5d582796
Author: Andy Green <andy@warmcat.com>
Date:   2018-07-16 09:34:39 +0800

    http: ETAG hits wrongly seen as serve fails on h2
    
    nonzero return from lws_http_serve() can equally be because we
    hit on an ETAG and finished the serve with only the headers.
    
    Split the return so -1 is to assertively close the stream, 1
    is we didn't serve anything (eg, not found) and 0 is continuing
    asynchronously to serve.

commit 78aeb75221e7ad50ac75f53befbf72faea468e58
Author: Dmytro Ivanov <jimon.j1m0n@gmail.com>
Date:   2018-07-12 16:12:09 +0200

    Android: Fixing missing sockaddr_in definition.

commit 2b9c69b55f1aec5e3ef5269e796245c5cf3bc1c3
Author: chrisplusplus <chrswilliams516@gmail.com>
Date:   2018-06-20 11:00:23 -0400

    Update protocol_lws_minimal_server_echo.c
    
    This plugin will not compile as a plugin without changing
    LWS_PLUGIN_PROTOCOL_MINIMAL_server_echo to
    LWS_PLUGIN_PROTOCOL_MINIMAL_SERVER_ECHO

commit 6648e01072ff94224217089b1ff4c2cf95cfac18
Author: James Chicca <James.Chicca@TradingTechnologies.com>
Date:   2018-07-10 09:38:40 -0500

    foreach_ll_safe

commit 5740356d9aba7030ee710ecb72c42f5b86f75264
Author: shinny-chengzhi <chengzhi@shinnytech.com>
Date:   2018-07-09 17:33:10 +0800

    Fix I/O hang after received a large deflate frame
    
    When a large deflate frame been received, WSAEnumNetworkEvents will indicate the socket is ready to read. And because the frame is compressed, it may not be consumed entirely(not all bytes ready to receive have been received), since WSAEnumNetworkEvents is edge triggered, and the socket read buffer never been drained, WSAEnumNetworkEvents will never indicate the socket is ready to read again. What here need is level trigger behavior, thus add additional recv with empty buffer to reset edge status.

commit d810379015825de58a33bdeb12d25726cc61bfc9
Author: 張俊芝 <zjz@zjz.name>
Date:   2018-07-08 15:33:10 +0800

    Fixes the binding error when SMP in tandem with a Unix domain socket

commit 8ed4574d366b5b1a67bd241b169816aa3b1923e8
Author: Andy Green <andy@warmcat.com>
Date:   2018-06-30 09:37:57 +0800

    pmd: fix stray client-only
    
    Fix wrong loglevels on some pmd debug stuff
    
    Small cosmetic cleaning

commit 5af32fe27dd80a29355f966a9347cf26aaed995b
Author: Andy Green <andy@warmcat.com>
Date:   2018-06-30 09:40:26 +0800

    logging: stderr: reduce brightness of some ANSI loglevels

commit eb4cefceaefb72450ff36f359b0b1320478bb8a2
Author: Rosen Penev <rosenp@gmail.com>
Date:   2018-06-29 18:20:06 -0700

    openssl: Fix compile with 1.1.0 - deprecated APIs
    
    These function have been deprecated. Keep compatibility with OpenSSL 1.0.2 as it is still supported.

commit 855114e39a48b53ead7a7f0cbb7a7c9deb0628e6
Author: Andy Green <andy@warmcat.com>
Date:   2018-06-27 07:49:04 +0800

    smp: context lock around vhost destroy

commit b58fb2dae3a3aa3a1749869be8f5cea0413c5dd5
Author: Andy Green <andy@warmcat.com>
Date:   2018-06-27 07:15:39 +0800

    lws_mutex_refcount
    
    This creates a "pthread mutex with a reference count"
    using gcc / clang atomic intrinsics + pthreads.
    
    Both pt and context locks are moved to use this,
    pt already had reference counting but it's new for
    context.

commit 8869a6ce1da426ffec15fcbe1760af6200b9db30
Author: Dominyk Tiller <dominyktiller@gmail.com>
Date:   2018-06-24 03:29:49 +0100

    libwebsockets.h: include new libuv header

commit d2943ff8668f94b50f2979eef0b6cda4b7188876
Author: Dominyk Tiller <dominyktiller@gmail.com>
Date:   2018-06-24 03:27:44 +0100

    CMakeLists: add check for new libuv header

commit f2f96857d6ee75166caded9da94daa362f7a1803
Author: Andy Green <andy@warmcat.com>
Date:   2018-06-23 12:56:21 +0800

    fd_cloexec: add and use lws_open wrapper and lws_plat_apply_FD_CLOEXEC() on cgi

commit f7631b7a100ff70d250539d0916a79ac8b4dab9e
Author: Per Bothner <per@bothner.com>
Date:   2018-06-23 05:44:36 +0800

    sockets: FD_CLOEXEC
    
    If the user code forks, it inherits open copies of all
    lws sockets, which conflict if lws later decides to
    close them.

commit bd9c1b715f2e2ab580e291143d767a389e775ac1
Author: negativekelvin <negativekelvin@users.noreply.github.com>
Date:   2018-06-16 08:53:48 -0700

    Fixes to track updates in esp-idf

commit 4d252d847b4a389db1e5a28147a511808a594d9c
Author: Andy Green <andy@warmcat.com>
Date:   2018-06-19 13:27:54 +0800

    max_http_header_pool2: migrate context ah pool limit and count to unsigned int

commit 7c6e3a8aeb89f989ff4ccb4605736c38220789c5
Author: Andy Green <andy@warmcat.com>
Date:   2018-06-19 12:30:10 +0800

    http: urlarg capture fixes

commit e9d178286395ea7372b48c5a99ac4c9bf745d1e2
Author: Andy Green <andy@warmcat.com>
Date:   2018-06-19 12:19:10 +0800

    http: skip NULs between fragments

commit b30af71ad8b3a6c897c59f556f93195890853287
Author: Silas Parker <skyhisi@gmail.com>
Date:   2018-06-18 18:37:12 +0800

    client: off-by-one in redirect max length calc
    
    https://libwebsockets.org/pipermail/libwebsockets/2018-June/003729.html

commit 8b21b32ae5b5b4583f59c3511c42221f7ceface1
Author: Andy Green <andy@warmcat.com>
Date:   2018-06-18 09:56:26 +0800

    doc-assets: update lws-overview

commit 157ac030abd60d62517c35bda7c361b8cff174bd
Author: Andy Green <andy@warmcat.com>
Date:   2018-06-16 11:15:38 +0800

    minimal-http-server-dynamic: add tls vhost as well

commit 1eb4ac4b41e10ee56fa845f1f6e7df8a79242334
Author: Andy Green <andy@warmcat.com>
Date:   2018-06-16 13:23:06 +0800

    LWS_ILLEGAL_HTTP_CONTENT_LEN implies connection:close
    
    If no content-length is coming, we just can't do
    http/1.1 keep-alive.

commit d84aebd43a7e9b8317e814c4c21fb82a83844a88
Author: Andy Green <andy@warmcat.com>
Date:   2018-06-16 10:38:17 +0800

    http: defer transaction completed if partial pending
    
    This is only helpful for http/1... the real solution is cut up
    sending large things.

commit df1d60fc1af0a8f2b6d3c6e104999c39ba16562c
Author: Andy Green <andy@warmcat.com>
Date:   2018-06-16 09:37:07 +0800

    plat: refactor private headers and split files
    
    Also remove LWS_VISIBLE that are not necessary from plat apis

commit 06680fc2a8f5eaef4832f0ea28aec7d4f7b930b1
Author: Andy Green <andy@warmcat.com>
Date:   2018-06-15 07:45:42 +0800

    minimal-http-server-tls-80

commit 410db9a28e1f373fd454e0cb587d341c7eb5d0ad
Author: Andy Green <andy@warmcat.com>
Date:   2018-06-20 16:22:58 +0800

    minimal-http-server-multivhost: add --die-after-vhost option

commit ac3bd36c605437a04f3d6315c40d2ffd7bfd0989
Author: Andy Green <andy@warmcat.com>
Date:   2018-06-16 09:31:07 +0800

    vhost_destroy: use vhost wsi reference counting to trigger destroy
    
    This changes the vhost destroy flow to only hand off the listen
    socket if another vhost sharing it, and mark the vhost as
    being_destroyed.
    
    Each tsi calls lws_check_deferred_free() once a second, if it sees
    any vhost being_destroyed there, it closes all wsi on its tsi on
    the same vhost, one time.
    
    As the wsi on the vhost complete close (ie, after libuv async close
    if on libuv event loop), they decrement a reference count for all
    wsi open on the vhost.  The tsi who closes the last one then
    completes the destroy flow for the vhost itself... it's random
    which tsi completes the vhost destroy but since there are no
    wsi left on the vhost, and it holds the context lock, nothing
    can conflict.
    
    The advantage of this is that owning tsi do the close for wsi
    that are bound to the vhost under destruction, at a time when
    they are guaranteed to be idle for service, and they do it with
    both vhost and context locks owned, so no other service thread
    can conflict for stuff protected by those either.
    
    For the situation the user code may have allocations attached to
    the vhost, this adds args to lws_vhost_destroy() to allow destroying
    the user allocations just before the vhost is freed.

commit 2935d7d32fa12e3dd884131a08d001a3f4232780
Author: Andy Green <andy@warmcat.com>
Date:   2018-06-11 14:29:07 +0800

    scrub github links

commit d2bdb60a170d195718969c441924fd5fa2bc95a0
Author: Andy Green <andy@warmcat.com>
Date:   2018-06-16 09:35:07 +0800

    cgi: fix for https git server

commit d44fe7a2804661c4aa2415e2a7c67e26fa999d44
Author: Fabio Alessandrelli <fabio.alessandrelli@gmail.com>
Date:   2018-06-07 15:25:27 +0200

    Add fix for forward declaration in BSD

commit db6976992d578a80773894a9e47d3bae70130ad1
Author: Andy Green <andy@warmcat.com>
Date:   2018-06-07 09:41:36 +0800

    sshd: make sure no aliases on last_alloc

commit 44e5e1231be7ca1f962740b3c4162640436f8ab3
Author: Andy Green <andy@warmcat.com>
Date:   2018-06-04 07:12:32 +0800

    minimal client: add different paths to multi

commit 6d72ef47686a55649a3bfbe453bfcc0a6d258bb5
Author: Andy Green <andy@warmcat.com>
Date:   2018-06-04 07:14:42 +0800

    client: pipelining needs ah reset at client transaction completed

commit 95e31cb1266939dffc7c19575c18e6ef19e5742a
Author: Andy Green <andy@warmcat.com>
Date:   2018-06-03 17:09:27 +0800

    minimal ring: keep coverity happy for NULL pointer possibility

commit 794c70cdc015d430e29e5669cd81f838d4024898
Author: Ecionis <ecionis@user.github.invalid>
Date:   2018-06-02 06:01:47 +0800

    windows: fix microseconds time calculation
    
    https://github.com/warmcat/libwebsockets/issues/1297

commit 37f2297b2a240a6578bef50cb06e1e11c6803e3e
Author: Alfred Sawaya <alfred@huji.fr>
Date:   2018-06-02 05:57:26 +0800

    fix memleak when role h1 failed to upgrade to websocket

commit 43bb34056697b6b936408be8c4f9a06e3f4b80d2
Author: emptyVoid <emptyVoid@users.noreply.github.com>
Date:   2018-05-27 11:57:46 +0700

    Fixed a couple of runtime issues introduced in commit 44efcd6.

commit 44efcd6196390fa274aa1b621fa35377e58b2470
Author: Andy Green <andy@warmcat.com>
Date:   2018-05-26 19:41:06 +0800

    windows: remove unused event array

commit cfa15b4a734ae6e04d44d3ac65fbea7f7b8c9f9e
Author: Steffen Vogel <post@steffenvogel.de>
Date:   2018-05-26 09:20:24 +0800

    rpm: add missing build-time dependencies

commit 21ef5f60a401da00436b69c5f255c1d0f736ad33
Author: Steffen Vogel <post@steffenvogel.de>
Date:   2018-05-26 09:20:20 +0800

    rpm: do parallel compilation during rpm builds

commit dd52dbcd86d7c59c54712410944f890e55da898a
Author: Steffen Vogel <post@steffenvogel.de>
Date:   2018-05-26 09:20:08 +0800

    rpm: add missing test-apps to spec file

...