Skip to content

Releases: pubnub/c-core

Minor feature release

12 Jul 16:53
7d5eff7
Compare
Choose a tag to compare

List of changes in this release:

  • Enable setting HTTP Keep-Alive use on/off for C++ and Qt
  • Some build fixes/improvements

Bugfix release

06 Jul 20:49
79028ff
Compare
Choose a tag to compare

Changes:

  • Enable reading system DNS on Windows
  • Small fixes in system DNS reading/parsing
  • Various little cleanups and fixes (better support for C++11, silence some compiler/code checker warnings...)

Async DNS release

14 Jun 20:04
ba4e4a3
Compare
Choose a tag to compare

Release v2.4.0

Features:

  • Callback interface uses (our own) async DNS for fully non-blocking I/O (this was a compile time option, off by default, now it's what we always do in the callback interface)
  • Enable sending meta data when publishing
  • Enable setting norep (don't replicate) when publishing (with store=false, publish becomes "fire")
  • On MacOS, use SO_NOSIGPIPE to avoid SIGPIPE on the socket

Bug fixes:

  • Bad handling of new transaction started in the callback and HTTP keep-alive was active
  • Bad handling of error (connection lost) when starting a new transaction on a HTTP kept-alive connection

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