9 days agoPROTON-2613: TLS OpenSSL library: fix SSL_write configuration for partial writes main
Cliff Jansen [Thu, 15 Sep 2022 17:25:12 +0000 (10:25 -0700)] 
PROTON-2613: TLS OpenSSL library: fix SSL_write configuration for partial writes

9 days agoPROTON-2612: TLS OpenSSL library: initialize read raw buffer size to use whole capacity
Cliff Jansen [Thu, 15 Sep 2022 17:14:55 +0000 (10:14 -0700)] 
PROTON-2612: TLS OpenSSL library: initialize read raw buffer size to use whole capacity

6 weeks agoPROTON-2590: [Python] Remove use of "from __future__ import ..."
Andrew Stitcher [Tue, 9 Aug 2022 14:20:23 +0000 (10:20 -0400)] 
PROTON-2590: [Python] Remove use of "from __future__ import ..."

Every one of these future imports that we use is already the default for
Python 3 so we no longer need any of them.

- Also a couple of other small changes where we are checking for things
  that are different with Python 2.

7 weeks agoPROTON-2578 Support Python 3.11 (#378)
Jiri Daněk [Thu, 4 Aug 2022 10:52:34 +0000 (12:52 +0200)] 
PROTON-2578 Support Python 3.11 (#378)

7 weeks agoPROTON-2586: TLS OpenSSL library - incomplete decryption/encryption of staged buffers
Cliff Jansen [Wed, 3 Aug 2022 05:59:23 +0000 (22:59 -0700)] 
PROTON-2586: TLS OpenSSL library - incomplete decryption/encryption of staged buffers

PROTON-2586: TLS OpenSSL library - incomplete decryption/encryption of staged buffers

7 weeks agoNO-JIRA: Update Travis CI to stop using Xenial and use Focal instead 377/head
Andrew Stitcher [Fri, 29 Jul 2022 19:08:54 +0000 (15:08 -0400)] 
NO-JIRA: Update Travis CI to stop using Xenial and use Focal instead

Xenial (16.04) is more than 5 years old and into extended support at
this point. Therefore we don't really have to make sure builds work
there anymore.

8 weeks agoNo-JIRA: Update Azure CI to use latest images
Andrew Stitcher [Thu, 28 Jul 2022 20:54:10 +0000 (16:54 -0400)] 
No-JIRA: Update Azure CI to use latest images

8 weeks agoPROTON-2583: A Better fix that works for Windows as well
Andrew Stitcher [Fri, 29 Jul 2022 19:50:43 +0000 (15:50 -0400)] 
PROTON-2583: A Better fix that works for Windows as well

8 weeks agoPROTON-2583: Fix broken CI builds
Andrew Stitcher [Wed, 27 Jul 2022 20:24:08 +0000 (16:24 -0400)] 
PROTON-2583: Fix broken CI builds

8 weeks agoPROTON-2583: Fix build to avoid warnings for recent CMake
Andrew Stitcher [Tue, 18 Jan 2022 15:47:09 +0000 (10:47 -0500)] 
PROTON-2583: Fix build to avoid warnings for recent CMake

It's not exactly clear but this may need cmake > 3.13

2 months agoPROTON-2562: Finish using fixed size buffers for logging output 374/head
Andrew Stitcher [Wed, 29 Jun 2022 12:25:43 +0000 (13:25 +0100)] 
PROTON-2562: Finish using fixed size buffers for logging output

Remove the scratch pn_string_t member of the logger as this is no longer

2 months agoPROTON-2559: Modify pn_object inspect operation to use pn_fixed_string_t
Andrew Stitcher [Wed, 29 Jun 2022 12:11:59 +0000 (13:11 +0100)] 
PROTON-2559: Modify pn_object inspect operation to use pn_fixed_string_t

This now allows us to inspect objects without potentially allocating
an indefinite amount of memory.

Renamed the new operation pn_finspect() and created a compatible
pn_inspect for any current users (none known)

2 months agoPROTON-2559: making object.h mostly private
Andrew Stitcher [Wed, 13 Apr 2022 18:39:53 +0000 (14:39 -0400)] 
PROTON-2559: making object.h mostly private

2 months agoPROTON-2562: Use fixed buffer for logging raw byte output
Andrew Stitcher [Fri, 24 Jun 2022 10:47:41 +0000 (11:47 +0100)] 
PROTON-2562: Use fixed buffer for logging raw byte output

Also chenage the format of the output to be a 'hexdump' type output.

3 months agoPROTON-2535: TLS OpenSSL library: remove BIO on decrypt side for accurate errors...
Cliff Jansen [Fri, 24 Jun 2022 17:32:04 +0000 (10:32 -0700)] 
PROTON-2535: TLS OpenSSL library: remove BIO on decrypt side for accurate errors and byte counts

3 months agoPROTON-2568: Free raw connection addrinfo in raw connection cleanup
Andrew Stitcher [Wed, 22 Jun 2022 10:59:59 +0000 (11:59 +0100)] 
PROTON-2568: Free raw connection addrinfo in raw connection cleanup

This covers the case that the raw connection is cleaned up between
starting the connection and processing the event for actually
connecting the connection.

3 months agoPROTON-2567: Fix fuzz-proactor-receive to work with response file
Andrew Stitcher [Thu, 16 Jun 2022 18:05:33 +0000 (19:05 +0100)] 
PROTON-2567: Fix fuzz-proactor-receive to work with response file

3 months agoNO-JIRA - Upgrade from Catch v2.13.7 to v2.13.9 (#373)
Jiri Daněk [Thu, 16 Jun 2022 14:51:21 +0000 (16:51 +0200)] 
NO-JIRA - Upgrade from Catch v2.13.7 to v2.13.9 (#373)

3 months agoPROTON-2562: Use a fixed size buffer for more log messages
Andrew Stitcher [Thu, 16 Dec 2021 03:28:50 +0000 (22:28 -0500)] 
PROTON-2562: Use a fixed size buffer for more log messages

The log messages that still use a pn_string_t either use that type
because of internal APIs.

3 months agoPROTON-2562: Fix pn_value_dump to output to a fixed size string buffer
Andrew Stitcher [Thu, 16 Dec 2021 02:40:48 +0000 (21:40 -0500)] 
PROTON-2562: Fix pn_value_dump to output to a fixed size string buffer

Introduce a new fixed size string type that does not grow and works in a
fixed buffer.

This is then used by the logger to avoid dynamically
growing the logger output.

3 months agoRevert "NO-JIRA Workaround Travis CI package installation issues (#311)" (#372)
Jiri Daněk [Fri, 10 Jun 2022 12:00:34 +0000 (14:00 +0200)] 
Revert "NO-JIRA Workaround Travis CI package installation issues (#311)" (#372)

The workaround has outlived its usefulness and is now causing build failures.

This reverts commit 06c7e64f

3 months agoNO-JIRA: Use C99 syntax for default logger initialization
Andrew Stitcher [Tue, 7 Jun 2022 21:44:14 +0000 (17:44 -0400)] 
NO-JIRA: Use C99 syntax for default logger initialization

3 months agoPROTON-2559: Rearrange using object.h
Andrew Stitcher [Fri, 8 Apr 2022 22:10:15 +0000 (18:10 -0400)] 
PROTON-2559: Rearrange using object.h

This is in preparation for removing the pn_object_t pn_class_t internals
from the public API of proton.

3 months agoPROTON-2556: Remove unnecessary active connection list from reactor-recv
Andrew Stitcher [Thu, 2 Jun 2022 16:30:26 +0000 (12:30 -0400)] 
PROTON-2556: Remove unnecessary active connection list from reactor-recv

I suspect this was added as a workaround long ago when proton didn't
properly cleanup listening connections.

3 months agoPROTON-2558: Add make class operation to hide class details
Andrew Stitcher [Tue, 17 May 2022 03:06:25 +0000 (23:06 -0400)] 
PROTON-2558: Add make class operation to hide class details

The new operation is used by the bindings to create proton objects
without needing to know the details of the pn_class_t struct.

3 months agoPROTON-2557: Ruby change for introduction of pn_tostring
Andrew Stitcher [Thu, 2 Jun 2022 00:39:38 +0000 (20:39 -0400)] 
PROTON-2557: Ruby change for introduction of pn_tostring

3 months agoPROTON-2557: Go change for introduction of pn_tostring
Andrew Stitcher [Thu, 2 Jun 2022 00:38:46 +0000 (20:38 -0400)] 
PROTON-2557: Go change for introduction of pn_tostring

3 months agoPROTON-2557: Introduce pn_tostring in place of pn_inspect
Andrew Stitcher [Wed, 1 Jun 2022 23:25:58 +0000 (19:25 -0400)] 
PROTON-2557: Introduce pn_tostring in place of pn_inspect

Introduce and use a new API pn_tostring which produces a string
representation of a Proton object in a char* string. It allocates this
string with malloc and the application must free it.

This replaces pn_inspect which requires the application to use the
pn_string_t type purely to receive the string output. But we really
don't want or need to expose this type outside the library itself.

3 months agoPROTON-2556: Removed gratuitous use of pn_string from reactor-send
Andrew Stitcher [Wed, 1 Jun 2022 12:22:43 +0000 (08:22 -0400)] 
PROTON-2556: Removed gratuitous use of pn_string from reactor-send

3 months agoPROTON-2544: temporary warning-as-error disable for DH_xxx calls in openssl related...
Cliff Jansen [Thu, 2 Jun 2022 01:28:03 +0000 (18:28 -0700)] 
PROTON-2544: temporary warning-as-error disable for DH_xxx calls in openssl related code

3 months agoPROTON-2546: Rearrange how raw connection generates events
Andrew Stitcher [Fri, 27 May 2022 17:49:44 +0000 (13:49 -0400)] 
PROTON-2546: Rearrange how raw connection generates events

Also Implement a proactor forced cleanup for raw connections to try to
limit leaking of events on forced shutdowns.

3 months agoPROTON-2540: [cpp] Provide a way to query proton::connection for the url
Rakhi Kumari [Tue, 3 May 2022 14:29:19 +0000 (19:59 +0530)] 
PROTON-2540: [cpp] Provide a way to query proton::connection for the url

4 months agoPROTON-2532 Print STATUS when CMake `find_package` user asks for component that is...
Jiri Daněk [Wed, 25 May 2022 15:33:19 +0000 (17:33 +0200)] 
PROTON-2532 Print STATUS when CMake `find_package` user asks for component that is not provided (#371)

4 months agoPROTON-2542: Remove last vestiges of now unnecessary "reify" operation 369/head
Andrew Stitcher [Tue, 3 May 2022 21:58:18 +0000 (17:58 -0400)] 
PROTON-2542: Remove last vestiges of now unnecessary "reify" operation

We have now removed every previous case that relied on the object system
looking up the actual class of an object and this is now entirely
delegated to the objct classes themselves. This means we can remove the
generic code that looks up the object class in all of the general paths.

4 months agoPROTON-2542: Make PN_OBJECT generic object management
Andrew Stitcher [Mon, 9 May 2022 22:03:03 +0000 (18:03 -0400)] 
PROTON-2542: Make PN_OBJECT generic object management

Rename the previous PN_OBJECT to PN_DEFAULT as it contains the default
handling for all object based classes. PN_OBJECT is now a memory
management strategy used for containers which incorporates the behaviour
that was previously implemented by reify.

This means that PN_OBJECT can be used as the container class type for
generic objects.

4 months agoPROTON-2542: Eliminate uses of PN_OBJECT in uses of pn_list, pn_map & pn_hash
Andrew Stitcher [Mon, 2 May 2022 22:33:22 +0000 (18:33 -0400)] 
PROTON-2542: Eliminate uses of PN_OBJECT in uses of pn_list, pn_map & pn_hash

As we now explicitly tell every container what the actual type of its
content is we no longer need to do this lookup in the object system
itself. This allows us to remove the final vestiges of the reify

There are a few uses left where the actual type is in fact PN_OBJECT

4 months agoPROTON-2542: Simplify pn_class_t handling
Andrew Stitcher [Fri, 29 Apr 2022 14:49:53 +0000 (10:49 -0400)] 
PROTON-2542: Simplify pn_class_t handling

Allow every vtable entry to be NULL and have a good default behaviour.
This allows a lot of devirtualization as the majority of the entries are
now NULL and are handled without an indirect jump. It also reduces the
number of symbols needed to be exported to be in the pn_class_t tables.

4 months agoPROTON-2542: Make the object system a bit clearer
Andrew Stitcher [Tue, 26 Apr 2022 20:17:06 +0000 (16:17 -0400)] 
PROTON-2542: Make the object system a bit clearer

Avoid duplicating identical function bodies; Use NULL entries where they
have the same effect as the function specified.

4 months agoPROTON-2542: Flatten out all direct pn_ object operations
Andrew Stitcher [Tue, 26 Apr 2022 20:39:00 +0000 (16:39 -0400)] 
PROTON-2542: Flatten out all direct pn_ object operations

Flattened out: pn_incref, pn_decref, pn_refcount, pn_free, pn_class,
pn_hashcode, pn_compare, pn_inspect. This avoids much calling overhead.

4 months agoPROTON-2542: Remove reify operation
Andrew Stitcher [Tue, 26 Apr 2022 20:43:29 +0000 (16:43 -0400)] 
PROTON-2542: Remove reify operation

Turns out the reify operation is really asking the question "What is my
real class?" And it's only useful if the class is PN_OBJECT. So instead
of adding a whole sepearate operation and lookup we can just check if
the class if PN_OBJECT and if it is look up the "real" class.

4 months agoPROTON-2542: Eliminate all code that uses pn_collector_put with PN_OBJECT
Andrew Stitcher [Mon, 2 May 2022 22:20:04 +0000 (18:20 -0400)] 
PROTON-2542: Eliminate all code that uses pn_collector_put with PN_OBJECT

This is to avoid the need to export the PN_OBJECT symbol from
libqpid_core - A step towards making most of object.h private and not
exported by the libqpid_core library.

4 months agoPROTON-2542: Eliminate PN_CLASSDEF mechanism in favour of PN_CLASS
Andrew Stitcher [Wed, 27 Apr 2022 04:57:47 +0000 (00:57 -0400)] 
PROTON-2542: Eliminate PN_CLASSDEF mechanism in favour of PN_CLASS

This just makes fewer ways of making new classes and removes a spurious
difference in the code.

4 months agoPROTON-1870: openssl layer: flush TLS error alert to peer for better error reporting
Cliff Jansen [Thu, 12 May 2022 14:11:45 +0000 (07:11 -0700)] 
PROTON-1870: openssl layer: flush TLS error alert to peer for better error reporting

4 months agoNO-JIRA: Remove unused structure
Andrew Stitcher [Tue, 3 May 2022 17:33:33 +0000 (13:33 -0400)] 
NO-JIRA: Remove unused structure

4 months agoNO-JIRA: Stop travis gcc tsan build testing all python based tests
Andrew Stitcher [Mon, 9 May 2022 21:48:50 +0000 (17:48 -0400)] 
NO-JIRA: Stop travis gcc tsan build testing all python based tests

They all seem to segfault including the new python-pep8-test

5 months agoPROTON-2536: Add flake8 to CI jobs for changed Python setup
Andrew Stitcher [Tue, 19 Apr 2022 14:56:26 +0000 (10:56 -0400)] 
PROTON-2536: Add flake8 to CI jobs for changed Python setup

5 months agoPROTON-2536: Reworked python packaging for more modern tooling
Andrew Stitcher [Thu, 14 Apr 2022 21:53:53 +0000 (17:53 -0400)] 
PROTON-2536: Reworked python packaging for more modern tooling

- This changes the development version from 0.38.0-SNAPSHOT to
  0.38.0-dev, as this is required to be strictly PEP440 compliant
  to use directly in setup.cfg.
- Moved Python pep8 test directly into ctests from the tox tests.
  As it's hard to control the files that are checked in the tox

5 months agoNO-JIRA: Remove VS2017 build from azure CI
Andrew Stitcher [Tue, 19 Apr 2022 14:51:58 +0000 (10:51 -0400)] 
NO-JIRA: Remove VS2017 build from azure CI

The image it uses has been removed.

5 months agoPROTON-2526: Fix compile flags for python build of proton-core
Andrew Stitcher [Thu, 14 Apr 2022 22:13:23 +0000 (18:13 -0400)] 
PROTON-2526: Fix compile flags for python build of proton-core

5 months agoPROTON-2526: Fix Python build with correct dependency
Andrew Stitcher [Mon, 11 Apr 2022 21:18:19 +0000 (17:18 -0400)] 
PROTON-2526: Fix Python build with correct dependency

5 months agoPROTON-2526/PROTON-2494: Remove final uses of distutils in Python setup
Andrew Stitcher [Wed, 6 Apr 2022 19:53:35 +0000 (15:53 -0400)] 
PROTON-2526/PROTON-2494: Remove final uses of distutils in Python setup

Also significantly simplify the setup logic by using the CMake build to
generate the SWIG c file and don't do it at Python setup time at all.

5 months agoPROTON-2458: [Python] Fix binding compile on windows with python 3.10
Andrew Stitcher [Thu, 7 Apr 2022 16:15:33 +0000 (12:15 -0400)] 
PROTON-2458: [Python] Fix binding compile on windows with python 3.10

5 months agoNO-JIRA: Fix and improve docs regarding libuv usage
Ievgen Popovych [Thu, 7 Apr 2022 09:21:43 +0000 (12:21 +0300)] 
NO-JIRA: Fix and improve docs regarding libuv usage

CMake variable names are case-sensitive and so `-Dproactor` doesn't work,
fix that.

Also, rephrase the section a bit and mention packages required
for libuv usage.

Signed-off-by: Ievgen Popovych <ievgenp@seetrue.ai>
5 months agoPROTON-2526/PROTON-2527: [Python,ruby] Don't install without SYSINSTALL_BINDINGS
Andrew Stitcher [Thu, 31 Mar 2022 22:17:48 +0000 (18:17 -0400)] 
PROTON-2526/PROTON-2527: [Python,ruby] Don't install without SYSINSTALL_BINDINGS

As we now make both the python package and the ruby gem as part of the
build we don't need to install anything in the install area by default.

- Also remove a long deprecated use of Python distutils

5 months agoPROTON-2535: Parse and generate handle_max in the begin frame
Andrew Stitcher [Fri, 18 Mar 2022 22:06:27 +0000 (18:06 -0400)] 
PROTON-2535: Parse and generate handle_max in the begin frame

We want to put handle_max into the frame to avoid our peer from sending
a handle that is big enough to seem negative - we use negative handles
for special purposes.

Equally, we should respect any handle_max our peer sends us.

[Bug found by the fuzzer]

6 months agoPROTON-2521: Fix null emission for emit_copy() and emit_multiple()
Andrew Stitcher [Mon, 14 Mar 2022 21:14:25 +0000 (17:14 -0400)] 
PROTON-2521: Fix null emission for emit_copy() and emit_multiple()

6 months agoPROTON-2520: Add some more error checking to frame decode
Andrew Stitcher [Fri, 4 Mar 2022 17:47:03 +0000 (12:47 -0500)] 
PROTON-2520: Add some more error checking to frame decode

Another issue found by the clusterfuzz fuzzing project.

6 months agoPROTON-2506, PROTON-2442: bump version to 0.38.0-SNAPSHOT again
Robbie Gemmell [Tue, 15 Mar 2022 16:54:26 +0000 (16:54 +0000)] 
PROTON-2506, PROTON-2442: bump version to 0.38.0-SNAPSHOT again

6 months agoPROTON-2442, PROTON-2506: set version for 0.37.0-rc2 0.37.0 0.37.0-rc2
Robbie Gemmell [Tue, 15 Mar 2022 16:38:34 +0000 (16:38 +0000)] 
PROTON-2442, PROTON-2506: set version for 0.37.0-rc2

This reverts commit 10519f500baf03d4653aaea58a888b8857576657.

6 months agoPROTON-2519: TLS Library - null pointer reference
Cliff Jansen [Tue, 15 Mar 2022 05:27:28 +0000 (22:27 -0700)] 
PROTON-2519: TLS Library - null pointer reference

6 months agoPROTON-2512: TLS library - remove unused code
Cliff Jansen [Tue, 15 Mar 2022 05:11:41 +0000 (22:11 -0700)] 
PROTON-2512: TLS library - remove unused code

6 months agoPROTON-2517: for pn_data used by emitters, save point, rewind, restore. This closes...
Cliff Jansen [Mon, 14 Mar 2022 19:16:10 +0000 (12:16 -0700)] 
PROTON-2517: for pn_data used by emitters, save point, rewind, restore.  This closes #362

6 months agoPROTON-2453 fix socket.socket type annotations and add more types (#358)
Jiri Daněk [Sun, 13 Mar 2022 16:31:04 +0000 (17:31 +0100)] 
PROTON-2453 fix socket.socket type annotations and add more types (#358)

6 months agoPROTON-2514: Rewind some pn_data that is read in the disposition frame
Andrew Stitcher [Fri, 4 Mar 2022 22:18:10 +0000 (17:18 -0500)] 
PROTON-2514: Rewind some pn_data that is read in the disposition frame

6 months agoPROTON-2511: Fix Fatal Python error: deallocating None (#360)
tanzhiying [Wed, 2 Mar 2022 15:22:23 +0000 (23:22 +0800)] 
PROTON-2511: Fix Fatal Python error: deallocating None (#360)

6 months agoNO-JIRA: trivial fix to ubuntu azure pipelines build
Andrew Stitcher [Fri, 25 Feb 2022 05:44:43 +0000 (00:44 -0500)] 
NO-JIRA: trivial fix to ubuntu azure pipelines build

6 months agoPROTON-2508: Workaround Visual Studio 2017 optimizer bug
Andrew Stitcher [Thu, 24 Feb 2022 22:31:12 +0000 (17:31 -0500)] 
PROTON-2508: Workaround Visual Studio 2017 optimizer bug

It seems that the bug does not occur in MinSizeRel (or Debug) build

6 months agoPROTON-2506, PROTON-2442: bump version to 0.38.0-SNAPSHOT
Robbie Gemmell [Thu, 24 Feb 2022 11:40:06 +0000 (11:40 +0000)] 
PROTON-2506, PROTON-2442: bump version to 0.38.0-SNAPSHOT

6 months agoPROTON-2442: update version for 0.37.0-rc1 0.37.0-rc1
Robbie Gemmell [Thu, 24 Feb 2022 11:31:26 +0000 (11:31 +0000)] 
PROTON-2442: update version for 0.37.0-rc1

6 months agoPROTON-2442: update .so versions following review
Robbie Gemmell [Thu, 24 Feb 2022 11:17:39 +0000 (11:17 +0000)] 
PROTON-2442: update .so versions following review

6 months agoPROTON-2497: Proton C - new TLS library. Initial implementation.
Cliff Jansen [Thu, 24 Feb 2022 05:05:48 +0000 (21:05 -0800)] 
PROTON-2497: Proton C - new TLS library.  Initial implementation.

6 months agoPROTON-2503: Correct fix for Messages with described AMQP Values
Andrew Stitcher [Wed, 23 Feb 2022 21:40:14 +0000 (16:40 -0500)] 
PROTON-2503: Correct fix for Messages with described AMQP Values

The original fix only allowed for descriptors that were ulongs and gave
errors in all other cases even when the descriptor didn't matter.

7 months agoPROTON-2060: Proposed doc changes to clarify auto-settle usage
Kim van der Riet [Wed, 23 Feb 2022 17:51:14 +0000 (12:51 -0500)] 
PROTON-2060: Proposed doc changes to clarify auto-settle usage

7 months agoPROTON-2503: Stop ignoring received framing errors discovered by fuzzer
Andrew Stitcher [Tue, 22 Feb 2022 23:02:01 +0000 (18:02 -0500)] 
PROTON-2503: Stop ignoring received framing errors discovered by fuzzer

7 months agoRevert "PROTON-2503: Stop ignoring some received framing errors"
Andrew Stitcher [Wed, 23 Feb 2022 03:07:03 +0000 (22:07 -0500)] 
Revert "PROTON-2503: Stop ignoring some received framing errors"

This reverts commit 9976249e8b17b5003529a04deae66c3c8345f8da.

The checkin was messed up

7 months agoPROTON-2503: Stop ignoring some received framing errors
Andrew Stitcher [Tue, 22 Feb 2022 23:02:01 +0000 (18:02 -0500)] 
PROTON-2503: Stop ignoring some received framing errors

This bug was discovered by the OSS fuzz project

7 months agoPROTON-2498: [Ruby] Correctly fix binding for ruby 3.1 URI module
Andrew Stitcher [Fri, 11 Feb 2022 17:58:00 +0000 (12:58 -0500)] 
PROTON-2498: [Ruby] Correctly fix binding for ruby 3.1 URI module

7 months agoPROTON-2498: [Ruby] Fix binding for ruby 3.1 357/head
Andrew Stitcher [Thu, 10 Feb 2022 22:43:02 +0000 (17:43 -0500)] 
PROTON-2498: [Ruby] Fix binding for ruby 3.1

7 months agoPROTON-2492 Fix -lssl Python module linking when openssl is not on default LIBRARY_PA...
Jiri Daněk [Fri, 4 Feb 2022 11:49:13 +0000 (12:49 +0100)] 
PROTON-2492 Fix -lssl Python module linking when openssl is not on default LIBRARY_PATH (#356)

7 months agoPROTON-2472: prevent early consumption of ready list on EINTR
Cliff Jansen [Thu, 3 Feb 2022 07:54:29 +0000 (23:54 -0800)] 
PROTON-2472: prevent early consumption of ready list on EINTR

7 months agoPROTON-2472: epoll proactor - fix ready list tracking when EINTR in epoll_wait
Cliff Jansen [Wed, 2 Feb 2022 19:20:13 +0000 (11:20 -0800)] 
PROTON-2472: epoll proactor - fix ready list tracking when EINTR in epoll_wait

7 months agoPROTON-2489: Use standardized tag for trace message creator
Andrew Stitcher [Mon, 24 Jan 2022 15:50:31 +0000 (10:50 -0500)] 
PROTON-2489: Use standardized tag for trace message creator

8 months agoPROTON-2488: [Python] Fix failure with tracing and message annotations
Andrew Stitcher [Fri, 21 Jan 2022 18:34:54 +0000 (13:34 -0500)] 
PROTON-2488: [Python] Fix failure with tracing and message annotations

This fixes a bad assumption in the tracing code that if tracing is on
and a message has any annotations then it must have tracing annotations.

8 months agoPROTON-2112: prevent fd overflow recovery during proactror shutdown
Cliff Jansen [Thu, 20 Jan 2022 01:29:51 +0000 (17:29 -0800)] 
PROTON-2112: prevent fd overflow recovery during proactror shutdown

8 months agoPROTON-2485: Improve constructors/destructors using C++ 11 features
Andrew Stitcher [Tue, 18 Jan 2022 04:27:24 +0000 (23:27 -0500)] 
PROTON-2485: Improve constructors/destructors using C++ 11 features

Used '= default' where relevant and improved proton::binary and
proton::symbol by inheriting the constructors of their parent classes.

8 months agoPROTON-2481: Make the new constructors more efficient
Andrew Stitcher [Wed, 12 Jan 2022 16:27:50 +0000 (11:27 -0500)] 
PROTON-2481: Make the new constructors more efficient

Directly construct the internal std::map rather than coding up the value
immediately. Also introduce an untemplated assignment operator that takes
std::map that is much more efficient than the templated version.

8 months agoPROTON-2481: [cpp] Improve constructor syntax for maps
Rakhi Kumari [Mon, 10 Jan 2022 12:38:09 +0000 (18:08 +0530)] 
PROTON-2481: [cpp] Improve constructor syntax for maps

- Add a copy constructor to copy from std::map
- Add an initializer_list constructor

8 months agoPROTON-2485: Use C++11 standard type traits instead of our own versions
Andrew Stitcher [Tue, 11 Jan 2022 22:33:19 +0000 (17:33 -0500)] 
PROTON-2485: Use C++11 standard type traits instead of our own versions

As we only support C++11 and later we can safely use the standard c++
library type traits. This should be ABI compatible as they don't affect
runtime symbols as we use them entirely at compile time.

8 months agoPROTON-2485: Use C++11 standard unique_ptr instead of our version
Andrew Stitcher [Wed, 12 Jan 2022 16:24:31 +0000 (11:24 -0500)] 
PROTON-2485: Use C++11 standard unique_ptr instead of our version

Now we only support C++11 and later we can use std::unique_ptr. As it
has the same size as our custom version and was never in the API just
used as a private member this should not change our ABI/API.

8 months agoPROTON-2484: epoll proactor - missing null pointer logic generously found by coverity
Cliff Jansen [Fri, 14 Jan 2022 18:30:38 +0000 (10:30 -0800)] 
PROTON-2484: epoll proactor - missing null pointer logic generously found by coverity

8 months agoPROTON-2484: epoll proactor - update fix for new introduced TSAN race
Cliff Jansen [Thu, 13 Jan 2022 19:24:54 +0000 (11:24 -0800)] 
PROTON-2484: epoll proactor - update fix for new introduced TSAN race

8 months agoPROTON-2484: epoll proactor - remove task memory reference after possible free
Cliff Jansen [Thu, 13 Jan 2022 17:19:35 +0000 (09:19 -0800)] 
PROTON-2484: epoll proactor - remove task memory reference after possible free

8 months agoPROTON-2483: epoll proactor TSAN race - ensure task locks not held when calling pni_t...
Cliff Jansen [Wed, 12 Jan 2022 21:00:14 +0000 (13:00 -0800)] 
PROTON-2483: epoll proactor TSAN race - ensure task locks not held when calling pni_timer_set()

8 months agoPROTON-2482: Fix PROTON-2479 to correctly handle EOF/EWOULDBLOCK
Andrew Stitcher [Tue, 11 Jan 2022 14:51:06 +0000 (09:51 -0500)] 
PROTON-2482: Fix PROTON-2479 to correctly handle EOF/EWOULDBLOCK

The previous code didn't handle any exception cases in the additional
potential second read.

8 months agoPROTON-2436: epoll raw connection TSAN race fix
Cliff Jansen [Tue, 11 Jan 2022 15:01:34 +0000 (07:01 -0800)] 
PROTON-2436: epoll raw connection TSAN race fix

8 months agoNO-JIRA: update years in NOTICE file
Robbie Gemmell [Mon, 10 Jan 2022 11:50:48 +0000 (11:50 +0000)] 
NO-JIRA: update years in NOTICE file

8 months agoPROTON-2308: Change dynamic_node API to be more like existing APIs 352/head
Andrew Stitcher [Thu, 6 Jan 2022 22:28:45 +0000 (17:28 -0500)] 
PROTON-2308: Change dynamic_node API to be more like existing APIs

Also mark new APIs as unsettled

8 months agoNO-JIRA Remove header duplicacy in node_options.cpp and target.cpp
Rakhi Kumari [Tue, 4 Jan 2022 09:25:25 +0000 (14:55 +0530)] 
NO-JIRA Remove header duplicacy in node_options.cpp and target.cpp

- node_options.cpp includes both #include "proton/codec/vector.hpp"
  and #include "proton/types.hpp".
- target.cpp includes #include "proton_bits.hpp" twice.

8 months agoNO-JIRA Add missing <vector> header in source_options and target_options
Rakhi Kumari [Tue, 4 Jan 2022 08:42:34 +0000 (14:12 +0530)] 
NO-JIRA Add missing <vector> header in source_options and target_options

9 months agoPROTON-2308: Add support for setting Dynamic Node Properties
Rakhi Kumari [Wed, 8 Dec 2021 11:24:01 +0000 (16:54 +0530)] 
PROTON-2308: Add support for setting Dynamic Node Properties

[Test fixed up by commiter] Closes #346