qpid-proton.git
7 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

7 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

7 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.

7 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

8 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

9 months agoPROTON-2448: Fix the frame trace not to dump null fields in described lists
Andrew Stitcher [Thu, 23 Dec 2021 00:10:44 +0000 (19:10 -0500)] 
PROTON-2448: Fix the frame trace not to dump null fields in described lists

9 months agoNO-JIRA: Remove unused internal logger function
Andrew Stitcher [Thu, 16 Dec 2021 03:10:00 +0000 (22:10 -0500)] 
NO-JIRA: Remove unused internal logger function

9 months agoPROTON-2479: Make reading more efficient by resizing input buffer
Andrew Stitcher [Fri, 17 Dec 2021 01:21:52 +0000 (20:21 -0500)] 
PROTON-2479: Make reading more efficient by resizing input buffer

This also introduces a connection driver API that allows the input
buffer resizing to be done explicitly by the proactor code.

9 months agoPROTON-2362: epoll proactor - handle connection wake and listener close before task...
Cliff Jansen [Mon, 20 Dec 2021 17:29:47 +0000 (09:29 -0800)] 
PROTON-2362: epoll proactor - handle connection wake and listener close before task setup complete

9 months agoPROTON-2519: epoll proactor - clarify unpolled work and move assertion outside loop...
Cliff Jansen [Fri, 17 Dec 2021 20:42:58 +0000 (12:42 -0800)] 
PROTON-2519: epoll proactor - clarify unpolled work and move assertion outside loop repeated with EINTR

9 months agoPartially revert "NO-JIRA: Remove unused header definition"
Andrew Stitcher [Fri, 17 Dec 2021 20:53:27 +0000 (15:53 -0500)] 
Partially revert "NO-JIRA: Remove unused header definition"

Commit error reverted earlier changes.

9 months agoNO-JIRA: Remove unused header definition
Andrew Stitcher [Fri, 17 Dec 2021 20:37:54 +0000 (15:37 -0500)] 
NO-JIRA: Remove unused header definition

9 months agoPROTON-2362: epoll proactor: remove ready list sneak peek optimization causing early...
Cliff Jansen [Thu, 16 Dec 2021 01:54:51 +0000 (17:54 -0800)] 
PROTON-2362: epoll proactor: remove ready list sneak peek optimization causing early task deletion

9 months agoPROTON-2362: epoll proactor: fix locking in listener overflow processing
Cliff Jansen [Thu, 16 Dec 2021 01:48:20 +0000 (17:48 -0800)] 
PROTON-2362: epoll proactor: fix locking in listener overflow processing

9 months agoPROTON-2362: epoll proactor: prevent opportunistic warm task from running twice
Cliff Jansen [Thu, 16 Dec 2021 01:43:30 +0000 (17:43 -0800)] 
PROTON-2362: epoll proactor: prevent opportunistic warm task from running twice

9 months agoPROTON-2476: Restore truncation behaviour for transfer frame traces
Andrew Stitcher [Tue, 14 Dec 2021 20:10:16 +0000 (15:10 -0500)] 
PROTON-2476: Restore truncation behaviour for transfer frame traces

The logging changes that came with PROTON-2448 had the side effect of no
longer truncating the message payloads that came along with transfer
frames.

This meant that these trace lines could get extremely long if applications
were sending long messages and could also take a very long time to allocate
memory and format the string.

10 months agoPROTON-2406: Replace uses of deprecated reconnect_options::failover_urls with connect...
Rakhi Kumari [Mon, 25 Oct 2021 10:09:23 +0000 (15:39 +0530)] 
PROTON-2406: Replace uses of deprecated reconnect_options::failover_urls with connection_options

10 months agoPROTON-2396: Use random_device for seed initialization in uuid.cpp
Rakhi Kumari [Wed, 3 Nov 2021 13:16:04 +0000 (18:46 +0530)] 
PROTON-2396: Use random_device for seed initialization in uuid.cpp

Closes #340

10 months agoPROTON-2450 Generate correct relocatable pc files (#335)
Jiri Daněk [Wed, 24 Nov 2021 16:06:41 +0000 (17:06 +0100)] 
PROTON-2450 Generate correct relocatable pc files (#335)

10 months agoNO-JIRA Install missing python3-pip package in .travis.yml (#343)
Jiri Daněk [Tue, 23 Nov 2021 20:03:02 +0000 (21:03 +0100)] 
NO-JIRA Install missing python3-pip package in .travis.yml (#343)

10 months agoPROTON-2362: epoll proactor fix for tsan_tr2.txt. Make scheduling and re-scheduling...
Cliff Jansen [Mon, 22 Nov 2021 18:25:23 +0000 (10:25 -0800)] 
PROTON-2362: epoll proactor fix for tsan_tr2.txt. Make scheduling and re-scheduling completely separate.

10 months agoPROTON-2362: epoll proactor fix for tsan_tr3.txt. Use safe local variable not subject...
Cliff Jansen [Sun, 21 Nov 2021 21:09:25 +0000 (13:09 -0800)] 
PROTON-2362: epoll proactor fix for tsan_tr3.txt. Use safe local variable not subject to deletion in another thread.

10 months agoPROTON-2362: epoll proactor fix for tsan_tr1.txt. Check earmark edge case at same...
Cliff Jansen [Sun, 21 Nov 2021 20:37:32 +0000 (12:37 -0800)] 
PROTON-2362: epoll proactor fix for tsan_tr1.txt.  Check earmark edge case at same time and with same lock as for unassign_thread.

10 months agoNO-JIRA upgrade from Catch v2.13.6 to v2.13.7 (#342)
Jiri Daněk [Fri, 19 Nov 2021 10:20:49 +0000 (11:20 +0100)] 
NO-JIRA upgrade from Catch v2.13.6 to v2.13.7 (#342)

10 months agoPROTON-2468: Fix some undefined behaviour found by ubsan
Andrew Stitcher [Fri, 19 Nov 2021 02:42:55 +0000 (21:42 -0500)] 
PROTON-2468: Fix some undefined behaviour found by ubsan

10 months agoPROTON-2467: Tidy up C++ reconnect test
Andrew Stitcher [Thu, 18 Nov 2021 02:14:26 +0000 (21:14 -0500)] 
PROTON-2467: Tidy up C++ reconnect test

More use of C++11 features
Deduplicate code from a couple of tests

10 months agoPROTON-2441: Fix connection_options failover urls segfault
Rakhi Kumari [Fri, 29 Oct 2021 19:41:13 +0000 (01:11 +0530)] 
PROTON-2441: Fix connection_options failover urls segfault

10 months agoPROTON-2457: Buffer overrun found by fuzzing
Andrew Stitcher [Fri, 5 Nov 2021 14:16:09 +0000 (14:16 +0000)] 
PROTON-2457: Buffer overrun found by fuzzing

10 months agoPROTON-2451: Remove conditional compilation for AMQP frame handling 339/head
Andrew Stitcher [Tue, 2 Nov 2021 13:41:36 +0000 (13:41 +0000)] 
PROTON-2451: Remove conditional compilation for AMQP frame handling

Remove all the code with the old frame handling and leave only the new
frame handling.

10 months agoPROTON-2451: Remove some things not needed at all with the new code
Andrew Stitcher [Thu, 28 Oct 2021 02:35:46 +0000 (22:35 -0400)] 
PROTON-2451: Remove some things not needed at all with the new code

10 months agoPROTON-2451: Don't treat message id/correlation_id as pn_data_t unless we need to.
Andrew Stitcher [Fri, 20 Aug 2021 21:37:54 +0000 (17:37 -0400)] 
PROTON-2451: Don't treat message id/correlation_id as pn_data_t unless we need to.

Add capability to encode/decode AMQP message id/correlation id directly
to pn_atom_t by introducing a new formatting code 'a'. This avoids going
through the very inefficient pn_data_t unless we really have to.

If the pn_data_t APIs (pn_message_id/pn_message_correlation_id) are not used
then using only the message id/correlation id set/get APIs should be pretty efficient.

The first time the application gets the pn_data_t from either of the
deprecated old APIs this activates the backwards compatibility mode and
everything becomes slow again. There's no real alternative to this as
these APIs give out a pointer to the messages internal state which can
now be changed by the application directly.

10 months agoPROTON-2451: Use generated code in transport/message/sasl receive code
Andrew Stitcher [Fri, 30 Jul 2021 17:37:41 +0000 (13:37 -0400)] 
PROTON-2451: Use generated code in transport/message/sasl receive code

10 months agoPROTON-2451: Fix tests that 'know' exactly what frame it is expecting back
Andrew Stitcher [Wed, 23 Jun 2021 19:10:26 +0000 (15:10 -0400)] 
PROTON-2451: Fix tests that 'know' exactly what frame it is expecting back

The current version of the generated code is a little different from
the previous code and generates more compact encodings in a few different
places.

10 months agoPROTON-2451: Use generated code in transport/sasl and message code
Andrew Stitcher [Wed, 23 Jun 2021 19:07:31 +0000 (15:07 -0400)] 
PROTON-2451: Use generated code in transport/sasl and message code

10 months agoPROTON-2451: Added tool to generate code for codec
Andrew Stitcher [Wed, 23 Jun 2021 19:03:18 +0000 (15:03 -0400)] 
PROTON-2451: Added tool to generate code for codec

This generates code for both emitting and consuming AMQP types as
defined by an input json file.

There is also a simple scanner to generate the json file by scanning
the source C code. This scanner will become useless when all the code
that uses scan/fill formats has been removed from the source base as
there will be nothing left to find!

10 months agoPROTON-2451: Consume functions for use in receiving amqp frames and decoding messages
Andrew Stitcher [Wed, 23 Jun 2021 15:59:06 +0000 (11:59 -0400)] 
PROTON-2451: Consume functions for use in receiving amqp frames and decoding messages

Also modify dispatch code to use the finished consume_descriptor() function.

10 months agoPROTON-2451: Add code to emit amqp values
Andrew Stitcher [Wed, 23 Jun 2021 18:53:04 +0000 (14:53 -0400)] 
PROTON-2451: Add code to emit amqp values

Including optimizations to generate LIST8/MAP8 for short lists and maps;
produce the list0 shortcode for empty lists; and omit nulls at the end
of described lists (This has a fairly large effect on the size of message
encoded in the transfer performatives.)

10 months agoPROTON-2451: Refactor to separate out extracting performative code
Andrew Stitcher [Fri, 11 Jun 2021 21:52:18 +0000 (17:52 -0400)] 
PROTON-2451: Refactor to separate out extracting performative code

... From rest of performative frame structure

10 months agoPROTON-2451: Refactor AMQP frame to allow code generation for fill
Andrew Stitcher [Tue, 22 Jun 2021 19:51:45 +0000 (15:51 -0400)] 
PROTON-2451: Refactor AMQP frame to allow code generation for fill

10 months agoPROTON-2449: Refactor logging/error reporting to avoid scratch string
Andrew Stitcher [Fri, 4 Jun 2021 21:50:05 +0000 (17:50 -0400)] 
PROTON-2449: Refactor logging/error reporting to avoid scratch string

There is already a scratch string in the logger so having another one in
transport for the purpose of formatting error messages is unnecessary.

10 months agoPROTON-2448: Connected up the new logger frame tracing
Andrew Stitcher [Fri, 15 Oct 2021 02:55:05 +0000 (22:55 -0400)] 
PROTON-2448: Connected up the new logger frame tracing

Used the new internal logger API to log frame traces.

Modified where this is now implemented - it can now attach to the very lowest
frame read/write routine as it only needs the raw bytes.

10 months agoPROTON-2448: Logger function to dump frame trace
Andrew Stitcher [Fri, 15 Oct 2021 01:06:16 +0000 (21:06 -0400)] 
PROTON-2448: Logger function to dump frame trace

Use the new pn_value_dump API in logger frame traces

10 months agoPROTON-2448: Add code to dump AMQP values direct from a bytestream
Andrew Stitcher [Fri, 17 Sep 2021 21:38:43 +0000 (17:38 -0400)] 
PROTON-2448: Add code to dump AMQP values direct from a bytestream

All AMQP types except single unicode chars are now supported.

10 months agoPROTON-2447: Added API to pn_buffer to get access to available memory
Andrew Stitcher [Wed, 12 May 2021 18:04:50 +0000 (14:04 -0400)] 
PROTON-2447: Added API to pn_buffer to get access to available memory

10 months agoPROTON-2456: Fix for error in PROTON-2427
Andrew Stitcher [Thu, 4 Nov 2021 11:11:32 +0000 (11:11 +0000)] 
PROTON-2456: Fix for error in PROTON-2427

10 months agoPROTON-2455: Fix to PROTON-2425 for hacky use of pn_buffer in messenger
Andrew Stitcher [Thu, 4 Nov 2021 11:07:47 +0000 (11:07 +0000)] 
PROTON-2455: Fix to PROTON-2425 for hacky use of pn_buffer in messenger

10 months agoPROTON-2442, PROTON-2400: bump version to 0.37.0-SNAPSHOT
Robbie Gemmell [Mon, 1 Nov 2021 12:06:49 +0000 (12:06 +0000)] 
PROTON-2442, PROTON-2400: bump version to 0.37.0-SNAPSHOT

10 months agoPROTON-2400: update version for 0.36.0-rc1 0.36.0 0.36.0-rc1
Robbie Gemmell [Mon, 1 Nov 2021 12:01:48 +0000 (12:01 +0000)] 
PROTON-2400: update version for 0.36.0-rc1

10 months agoPROTON-2400: update .so versions following review
Robbie Gemmell [Mon, 1 Nov 2021 11:36:59 +0000 (11:36 +0000)] 
PROTON-2400: update .so versions following review

10 months agoNO-JIRA: remove older OSX build as it is hanging in dep install and bits are old...
Robbie Gemmell [Mon, 1 Nov 2021 10:39:55 +0000 (10:39 +0000)] 
NO-JIRA: remove older OSX build as it is hanging in dep install and bits are old and no longer supported

11 months agoPROTON-2446: escape quotemarks when they appear in dumped data
Andrew Stitcher [Thu, 7 Oct 2021 03:03:30 +0000 (23:03 -0400)] 
PROTON-2446: escape quotemarks when they appear in dumped data

11 months agoPROTON-2445: Allow encoder to produce the short forms for 0
Andrew Stitcher [Mon, 20 Sep 2021 21:58:04 +0000 (17:58 -0400)] 
PROTON-2445: Allow encoder to produce the short forms for 0

Previously (for reasons unknown) the AMQP type encoder never generated
the short typecodes for ulong and uint 0. Using these instead of
SMALLUINT and SMALLULONG saves a byte for each encoding.

[Had to fix a few python tests which have the exact bytes of expected
frames hardcoded in them]

11 months agoPROTON-2444: Fix potential use of uninitialised value
Andrew Stitcher [Wed, 27 Oct 2021 21:56:16 +0000 (17:56 -0400)] 
PROTON-2444: Fix potential use of uninitialised value

11 months agoPROTON-2443: Workaround bug in cyrus sasl EXTERNAL mechanism
Andrew Stitcher [Wed, 27 Oct 2021 21:56:57 +0000 (17:56 -0400)] 
PROTON-2443: Workaround bug in cyrus sasl EXTERNAL mechanism

The mechanism plugin assumes that the initial iresponse data is zero
terminated. But this is not required by the protocol or by the API used
by cyrus sasl.

11 months agoPROTON-2382: An accessor on tracker for the delivery tag
dreampearl [Tue, 12 Oct 2021 11:02:24 +0000 (16:32 +0530)] 
PROTON-2382: An accessor on tracker for the delivery tag

This closes #336

11 months agoPROTON-2422: fix epoll timer ordering bug
Cliff Jansen [Fri, 29 Oct 2021 07:35:14 +0000 (00:35 -0700)] 
PROTON-2422: fix epoll timer ordering bug

12 months agoPROTON-2254, PROTON-2433 Fixes to 'modern' CMake installed targets (#334)
Jiri Daněk [Fri, 17 Sep 2021 21:28:10 +0000 (23:28 +0200)] 
PROTON-2254, PROTON-2433 Fixes to 'modern' CMake installed targets (#334)

* PROTON-2433 Set include directories on the modern CMake targets, removed by mistake in PROTON-2254

* PROTON-2254 Give the static Targets.cmake file a correct name

12 months agoPROTON-2430: Add better error checking to pn_msgid_t typemap
Andrew Stitcher [Fri, 3 Sep 2021 20:56:04 +0000 (16:56 -0400)] 
PROTON-2430: Add better error checking to pn_msgid_t typemap

Also allow some illegal id types for interop with broken ruby binding

12 months agoPROTON-2430: Changed python binding to use pn_message_set/get_id/correlation_id
Andrew Stitcher [Fri, 27 Aug 2021 18:25:56 +0000 (14:25 -0400)] 
PROTON-2430: Changed python binding to use pn_message_set/get_id/correlation_id

Stop using pn_message_id/pn_message_correlation_id which are inherently
ineefficient and should be deprecated.

Added in a SWIG typemap for pn_msgid_t that knows the types that are
necessary for msgid types.

12 months agoPROTON-2429: Fix merging error
Andrew Stitcher [Fri, 3 Sep 2021 01:59:52 +0000 (21:59 -0400)] 
PROTON-2429: Fix merging error

12 months agoPROTON-2429: Introduce restricted pn_msgid_t typedef
Andrew Stitcher [Thu, 2 Sep 2021 20:19:18 +0000 (16:19 -0400)] 
PROTON-2429: Introduce restricted pn_msgid_t typedef

This is a typedef for pn_atom_t but indicates that the values are
restricted to be the subset that is allowed in message id and
correlation id.

12 months agoPROTON-2427: Avoid message id/correlation id APIs returning pn_data_t
Andrew Stitcher [Tue, 24 Aug 2021 19:39:47 +0000 (15:39 -0400)] 
PROTON-2427: Avoid message id/correlation id APIs returning pn_data_t

Stop using pn_message_id() and pn_message_correlation_id() APIs for
setting the message id/correlation id in the examples and in the C++
binding.

These APIs force inefficient behaviour by returning an inefficent data
structure that is internal to the message. If we stop using this API we
can do something more efficient internal to the message in many cases,
and only fall back to the inefficient behaviour when
pn_message_id()/pn_message_correlation_id() APIs are used.

We can then also deprecate these APIs.

12 months agoPROTON-2426: [C] Fix off by one error in pn_quote_data
Andrew Stitcher [Tue, 22 Jun 2021 20:39:48 +0000 (16:39 -0400)] 
PROTON-2426: [C] Fix off by one error in pn_quote_data

12 months agoPROTON-2425: [C] Tweak pn_buffer code to use memcpy
Andrew Stitcher [Tue, 22 Jun 2021 19:50:13 +0000 (15:50 -0400)] 
PROTON-2425: [C] Tweak pn_buffer code to use memcpy

It's guaranteed that the memory in these operations can't overlap so
use memcpy not memmove.

12 months agoPROTON-2424: Fix the C++ example runners to work under valgrind
Andrew Stitcher [Wed, 1 Sep 2021 01:08:54 +0000 (21:08 -0400)] 
PROTON-2424: Fix the C++ example runners to work under valgrind

13 months agoPROTON-2407 [python] fix type-related documentation comments (#332)
Jiri Daněk [Fri, 27 Aug 2021 12:14:20 +0000 (14:14 +0200)] 
PROTON-2407 [python] fix type-related documentation comments (#332)

13 months agoPROTON-2407 [python] still more annotations; properties; fix type for message tag...
Jiri Daněk [Sat, 14 Aug 2021 07:57:12 +0000 (09:57 +0200)] 
PROTON-2407 [python] still more annotations; properties; fix type for message tag (#331)

13 months agoPROTON-2254 Update proton-cpp CMake install to also use new features (#330)
Jiri Daněk [Fri, 13 Aug 2021 15:14:51 +0000 (17:14 +0200)] 
PROTON-2254 Update proton-cpp CMake install to also use new features (#330)

13 months agoPROTON-2254 Allow absolute -DINCLUDE_INSTALL_DIR= (#329)
Jiri Daněk [Thu, 12 Aug 2021 20:44:06 +0000 (22:44 +0200)] 
PROTON-2254 Allow absolute -DINCLUDE_INSTALL_DIR= (#329)

13 months agoPROTON-2254 Use more modern CMake install machinery for better config.cmake (#317)
Jiri Daněk [Wed, 11 Aug 2021 14:56:36 +0000 (16:56 +0200)] 
PROTON-2254 Use more modern CMake install machinery for better config.cmake (#317)

Turns out, CMake is happy to generate a lot of the *config.cmake file for us, see
* https://gitlab.kitware.com/cmake/cmake/-/issues/19560
* https://cmake.org/cmake/help/latest/manual/cmake-packages.7.html#creating-packages
* https://cmake.org/cmake/help/latest/module/CMakePackageConfigHelpers.html#example-generating-package-files

13 months agoPROTON-2413: [Python] set PATH in example test runner
Andrew Stitcher [Thu, 5 Aug 2021 21:47:15 +0000 (17:47 -0400)] 
PROTON-2413: [Python] set PATH in example test runner

Previously the test runner assumed it could find the examples on the
path. This meant that the environment running the examples would have to
set up the path correctly. This is unnecessary as they are all in the
same directory as the test runner itself.

13 months agoPROTON-2407 Introduce more optional typing annotations to Python binding (#326)
Jiri Daněk [Thu, 5 Aug 2021 19:12:49 +0000 (21:12 +0200)] 
PROTON-2407 Introduce more optional typing annotations to Python binding (#326)

13 months agoFix integer overflow in pn_proactor_now_64 while compiling 32-bits
Martijn Fennema [Wed, 4 Aug 2021 08:30:13 +0000 (10:30 +0200)] 
Fix integer overflow in pn_proactor_now_64 while compiling 32-bits