2016/06/23

librelp 1.2.11

librelp 1.2.11 [download]

This new release of librelp is mostly a bugfixing release that fixes several issues, especially a potential segfault. The new version also has an API enhancement that adds a configurable connection timeout.

For more details, please take a look at the changelog below.

----------------------------------------------------------------------
Version 1.2.11 - 2016-06-22
- bugfix: do not accept more than one "open" verb on a connection
  closes https://github.com/rsyslog/librelp/issues/37
- bugfix: potential segfault when high-numbered fd is used in sender
  When a fd (socket) with value >= 1024 was used by the client sender
  process, the library could segfault in select(). This depended a bit
  on the platform.
  This patch solves the issue by replacing the select() call with
  poll(). Note that we do not changed to epoll(), because
  (a) we only wait on a single fd
  (b) poll() is more portable
  closes https://github.com/rsyslog/librelp/issues/38
- bugfix: make librelp not run in thight loop when out of sockets
  If the process can no longer accept new connections (via accept)
  because it has reached its file handle maximum, librelp runs in
  a thight loop until either the client connection request is aborted
  or a file handle becomes available.
  This happens due to the fact that we get event notifications on
  connection requests. As we can't satisfy it, we librelp always
  retries. Unfortunately, there is no socket call to cancel a
  connection request, so we cannot push the client request out.
  An alternative solution would be to close and re-open the
  listening socket, but in that case it is uncertain if we ever can
  re-aquire a socket (an easy DoS). So the best thing we can
  probably do is delay retries a bit. We must be careful, however,
  not to use a too long delay, as that would also affect other
  connections. We could address that problem via a dedicated thread
  for the listening process, but librelp is designed so that it can
  be used by callers with any threading library and threading model,
  and that would violate this design principle.
  Judging the alternatives, a slight delay probably is the best
  solution, especially as the situation is uncommon and will hopefully
  not last too long. This patch implements that solution.
  closes https://github.com/rsyslog/librelp/issues/34
- bugfix: flush the current recv frame if it exists if the client
  session is restarting
  Thanks to Nate Brown for the patch.
- API enhancement: add configurable connection timeout
  Thanks to Nate Brown for the patch.

sha256sum: 84de48f46caba0106d8853af572aa7b625c82dfbcf5f7cd13d2e57cce786e929

2016/03/30

librelp 1.2.10

librelp 1.2.10 [download]

This new release of librelp fixes a problem with sending large buffers, improves sender/receiver code and enables compatibility with older versions of GnuTLS.

----------------------------------------------------------------------
Version 1.2.10 - 2016-03-30
- make compatible with older versions of GnuTLS which require
  libgcrypt
- improve example sender/receiver code
  Thanks to Chris Pilkington for the patches.
- bugfix: Send full buffers after connection re-establishing
  When sending large buffers it's possible that only part of buffer data
  will be transferred before connection is closed. Then on connection
  re-establishing librelp thinks part of buffer is already sent and
  transfers only remaining part. Remote side then is not be able to parse
  such message and always closes the connection.
  Thanks to github user cellscape for the patch.

sha256sum: 6c80eed5e29061d2cce35408ae43ddaee354edc27c1076eabec6da4eaecdcc72

2015/12/15

librelp 1.2.9

librelp 1.2.9 [download]

This is a bugfixing release of librelp.

----------------------------------------------------------------------
Version 1.2.9 - 2015-12-15
- bugfix: Ignoring return status when handling syslog frames now.
  Otherwise valid messages in the frame buffer will get lost when the
  remote connection is closed during meantime.
- build bugfix: GnuTLS header was required even if TLS was turned off
  Thanks to Pedro Alvarez Piedehierro for the patch.
- bugfix: correct wrong assert() calls [debug mode only affected]

sha256sum: 520de7ba3dc688dc72c5b014dc61ef191e9528f77d1651ddca55fc0c149d98a3

2015/09/07

librelp 1.2.8

librelp 1.2.8 [download]

This is a bugfixing release of librelp. It fixes a segfault that occurs if KEEPALIVE is used.

----------------------------------------------------------------------
Version 1.2.8 - 2014-09-07
- bugfix: segfault if KEEPALIVE is used
  Thanks to Tomas Heinrich for the patch.

sha256sum: 2623a4146e55b2b79508832998b3017b23d0dd683729c20c572034a1743cb2e3

2014/04/29

librelp 1.2.7

librelp 1.2.7 [download]

This is a bugfixing release of librelp. It fixes incompatabilities with C++ and some bugs with wildcards.

----------------------------------------------------------------------
Version 1.2.7 - 2014-04-29
- bugfix: librelp was incompatible with C++ without a real reason
  Thanks to Ivan Kryak for the patch
- bugfix: potential misadressing in wildcard match
  see: https://github.com/rsyslog/librelp/pull/3
  Thanks to Sebastian Schmidt for the patch.
- bugfix: always last wildcard match was reported, not first
  see: https://github.com/rsyslog/librelp/pull/4
  Thanks to Sebastian Schmidt for the patch.

sha256sum: 3a434a1c71772706104cfb1c93ba8e6809d257851d60de29ac2142c60c68d7d1

2014/03/20

librelp 1.2.5

librelp 1.2.5 [download]

This version of librelp allows to use anonymous TLS on platforms where GnuTLS misses certificate verification function. This permits to use at least anon TLS on platforms like RHEL and CENTOS 6.

----------------------------------------------------------------------
Version 1.2.5 - 2014-03-20
- permit to use anonymous TLS on platforms where GnuTLS misses
  certificate verification function. This permits to use at least
  anon TLS on platforms like RHEL and CENTOS 6.

sha256sum: 358b2de82c9aebd4efcbab5e1ff212477fb8fa89543dbeded61aa46a23dcf12b

2014/03/17

librelp 1.2.4

librelp 1.2.4 [download]

This version of librelp is a correction for the API/ABI change in v1.2.3. Everything else stays the same.

----------------------------------------------------------------------
Version 1.2.4 - 2014-03-17
- correct API/ABI change in 1.2.3
  My reasoning was flawed, and we could run into problems with
  apps that required the new version but could not detect that an
  older one was installed.
  Thanks to Michael Biebl for pointing this out.
  What we have done is:
  - revert back to previous state (return void)
    * relpSrvEnableTLS();
    * relpSrvEnableTLSZip();
    These functions are now deprecated.
  - introduce new functions that return a state
    * relpSrvEnableTLS2();
    * relpSrvEnableTLSZip2();

sha256sum: cf4f26f9a75991eedf3eaf414280c8da3532c38e619a465d23008c714f5c1cf1