Skip to content

Releases: pubnub/c-core

Bug fix release

11 Apr 16:17
28dcf5a
Compare
Choose a tag to compare
  • On Linux, use MSG_NOSIGNAL to avoid SIGPIPE on send()
  • Add API to read proxy configuration
  • Avoid (currently harmless) inconsistent locking order
  • Fix HTTP GET & CONNECT proxy w/HTTP Keep-Alive
  • Send up-to-date version info in User-Agent HTTP header
  • Various smaller fixes and logging improvements.

2.3.2: Merge pull request #42 from pubnub/develop

10 Mar 20:14
7aa67d5
Compare
Choose a tag to compare

Bug fix release

08 Mar 16:11
Compare
Choose a tag to compare
  • Fix reading from OpenSSL in a loop, as one read gets us at most one TLS record, while there may be more than one in the TCP/IP buffer
  • Fix minor race condition in timer expiry

Minor release

05 Mar 21:43
023d23c
Compare
Choose a tag to compare

The main feature of this release is HTTP keep-alive support. C-core will now keep the TCP or TLS connection alive after a transaction ends and will re-use it for the next transaction, thus, in regular case, make transactions be much faster and use less resources (bandwidth, CPU...). It is on by default, but can be turned off.

There are several bug fixes and cleanups, too.

Bug fix release

06 Feb 18:22
7444ac0
Compare
Choose a tag to compare

Fix bug in timer lists: If the first context in the list (the next one to expire) was removed from the list, the next one wouldn't get its "time to expire", but would be left with "what it had", causing it to expire sooner.

Some other cleanups of issue reported by static analyzers, all minor.

Bug fix release

06 Feb 11:59
2fdac0d
Compare
Choose a tag to compare

A (mostly) complete list of bug fixes and cleanups in this release:

  • Added some ASSERTs to check buffer access. These should not happen, but,
    if there's some bug, they will, so: ASSERT()

  • Fixed and updated unit tests

  • Fix receiving data longer than a http_buf at a time

    If we had received data from Pubnub server that is longer than the
    size of our HTTP ("scratchpad") buffer, we would mishandle that. It
    wouldn't show often, as default size of the buffer on Windows and
    POSIX was 32000 octets, which is longer than most HTTP replies.

    This was actually a regression introduced in commit 03dfd2c.

    This prompted a "small scale refactoring" of the buffer handling,
    which is now a little simpler, more resilent, uses less memory and
    fixes some other corner-cases which probably couldn't happen "as-is",
    but, just like this regression, could have "awaken" with some other
    "innocent looking" change.

  • Handle HTTP chunks larger than http_buff

    This was merely being too eager to reject long chunks. If the chunk
    is largert then http_buff, we can simply get it in several
    iterations. Of course, it may turn out that the chunk is too big to
    fit in the reply buffer, but, no need to reject it beforehand.

  • Fix compiler and static check warnings on Windows

    Various fixes for compiler warnings and static check errors/warnings
    reported by MSVC, clang-analyzer (scan-build) and CppCheck.

    Also, the Makefile for GCC on Windows was updated and now builds
    basic examples.

  • Support OpenSSL 1.1.0+, BIO_(s|g)et_conn_ip ->
    BIO_(s|g)et_conn_address

  • Some NMake preprocessor magic to detect the
    .libs to use, as this has changed in 1.1.0+,
    at least in OpenSSL "distribution" we use

  • The Base64 encoded length was not correctly calculated in all cases

  • Introduced a new Base64 helper function to calculate the needed size of
    the char array for the encoded string

  • A small bug in Base64 decoder was fixed.

  • Other than that, some undefined behavior removed and some style improvements.

Bug-fix release

05 Oct 21:55
Compare
Choose a tag to compare
  • Fix some Mac build issues
  • Fix high CPU utilization when network out on POSIX/Mac
  • Fix off-by-one error

Bug-fix release

14 Sep 19:16
Compare
Choose a tag to compare
  • Add support for OpenSSL 1.1.0+
  • Fix handling of recv() errors on MacOS
  • Several smaller fixes and logging impovements

Bug-fix

03 Aug 20:30
Compare
Choose a tag to compare

Fixed an off-by-one buffer overflow error.

Version 2.2.0

22 Feb 17:20
Compare
Choose a tag to compare

Highlights for this release are:

  • Support for thread-safety
  • Timers
  • FreeRTOS(+TCP) port
  • Qt port
  • Light-weight yet powerful logging sub-system
  • Support for setting "origin" (the server name)

There are numerous other smaller improvements.