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

11 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

11 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

13 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

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

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

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

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

13 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

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

13 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

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

14 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)

14 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

14 months agoPROTON-2407 Introduce initial optional typing annotations to Python binding (#325)
Jiri Daněk [Sat, 10 Jul 2021 22:29:11 +0000 (00:29 +0200)] 
PROTON-2407 Introduce initial optional typing annotations to Python binding (#325)

14 months agoPROTON-2399 Support Python 3.10 (#322)
Jiri Daněk [Thu, 8 Jul 2021 15:43:41 +0000 (17:43 +0200)] 
PROTON-2399 Support Python 3.10 (#322)

Using py310 in envlist is necessary on Fedora Rawhide, which might be installed with
this version of Python only.

Using py310 in envlist is supported since tox v3.14.0

14 months agoPROTON-2403, PROTON-2351: remove 'allow fail' on Travis MacOS jobs now that 471d043db...
Robbie Gemmell [Thu, 8 Jul 2021 13:04:36 +0000 (14:04 +0100)] 
PROTON-2403, PROTON-2351: remove 'allow fail' on Travis MacOS jobs now that 471d043db648e9fc855ae2d9330fa5dfb4332dd3 changes got things working again

This reverts commit cbdb8d531ade5b4bb9d037d3383ac0ddd81613aa.

15 months agoPROTON-2403: libuv proactor update for newer libuv library versions
Cliff Jansen [Fri, 2 Jul 2021 16:46:05 +0000 (09:46 -0700)] 
PROTON-2403: libuv proactor update for newer libuv library versions

15 months agoPROTON-2405: Change python examples to be python3 only
Andrew Stitcher [Fri, 25 Jun 2021 21:56:07 +0000 (17:56 -0400)] 
PROTON-2405: Change python examples to be python3 only

15 months agoPROTON-2400, PROTON-2367: bump version to 0.36.0-SNAPSHOT
Robbie Gemmell [Fri, 25 Jun 2021 13:58:19 +0000 (14:58 +0100)] 
PROTON-2400, PROTON-2367: bump version to 0.36.0-SNAPSHOT

15 months agoPROTON-2367: update version for 0.35.0-rc1 0.35.0 0.35.0-rc1
Robbie Gemmell [Fri, 25 Jun 2021 13:42:55 +0000 (14:42 +0100)] 
PROTON-2367: update version for 0.35.0-rc1

15 months agoPROTON-2324 Support Python 3.9 (#320)
Jiri Daněk [Fri, 25 Jun 2021 10:59:58 +0000 (12:59 +0200)] 
PROTON-2324 Support Python 3.9 (#320)

15 months agoPROTON-2367: bump .so versions after review
Robbie Gemmell [Fri, 25 Jun 2021 10:00:17 +0000 (11:00 +0100)] 
PROTON-2367: bump .so versions after review

15 months agoPROTON-2397: fix to Windows implementation
Cliff Jansen [Thu, 24 Jun 2021 22:34:50 +0000 (15:34 -0700)] 
PROTON-2397: fix to Windows implementation

15 months agoPROTON-2397: test fixes and extra test
Cliff Jansen [Wed, 23 Jun 2021 15:55:03 +0000 (08:55 -0700)] 
PROTON-2397: test fixes and extra test

15 months agoNO-JIRA: Fix "${InstallPrefix}" variable in CI
dreampearl [Tue, 22 Jun 2021 13:30:30 +0000 (19:00 +0530)] 
NO-JIRA: Fix "${InstallPrefix}" variable in CI

This closes #321

15 months agoPROTON-2397: make client TLS connection verification defaults consistent: verify...
Cliff Jansen [Fri, 18 Jun 2021 06:04:21 +0000 (23:04 -0700)] 
PROTON-2397: make client TLS connection verification defaults consistent: verify peer certificate and name

16 months agoNO-JIRA: remove unused script from old jenkins job
Robbie Gemmell [Thu, 27 May 2021 15:18:59 +0000 (16:18 +0100)] 
NO-JIRA: remove unused script from old jenkins job

16 months agoPROTON-2389 Add COMPILE_FLAGS for test_main.cpp (#316)
Jiri Daněk [Wed, 26 May 2021 05:38:27 +0000 (07:38 +0200)] 
PROTON-2389 Add COMPILE_FLAGS for test_main.cpp (#316)

This is needed on RHEL 7, which defaults to -std=c++03, causing compilation failure.

16 months agoPROTON-2389 Update Catch to Catch2 (#315)
Jiri Daněk [Tue, 25 May 2021 20:08:31 +0000 (22:08 +0200)] 
PROTON-2389 Update Catch to Catch2 (#315)

16 months agoPROTON-2387: [C++] Remove support for versions prior to C++11.
Andrew Stitcher [Fri, 21 May 2021 02:15:55 +0000 (22:15 -0400)] 
PROTON-2387: [C++] Remove support for versions prior to C++11.

16 months agoPROTON-2323 Propagate requested version 3.6 from FindPython to FindPythonInterp ...
Jiri Daněk [Thu, 20 May 2021 14:40:21 +0000 (16:40 +0200)] 
PROTON-2323 Propagate requested version 3.6 from FindPython to FindPythonInterp (#313)

16 months agoPROTON-2220 Regenerate test certificates with long expiry (#314)
Jiri Daněk [Tue, 18 May 2021 21:08:00 +0000 (23:08 +0200)] 
PROTON-2220 Regenerate test certificates with long expiry (#314)

16 months agoPROTON-2323: [Python] Remove all Python 2 compatibility code
Andrew Stitcher [Thu, 13 May 2021 21:57:49 +0000 (17:57 -0400)] 
PROTON-2323: [Python] Remove all Python 2 compatibility code

Obviously, from this point the proton library will no longer work with
Python 2.

16 months agoPROTON-2323: [Python] Minimum supported version is Python 3.6
Andrew Stitcher [Thu, 13 May 2021 19:58:24 +0000 (15:58 -0400)] 
PROTON-2323: [Python] Minimum supported version is Python 3.6

Change Tox testing to stop testing Python 2.7, 3.5 and add 3.9. Also
tidied up the way CTest calls tox.

16 months agoPROTON-2377: [cpp] Make tag_counter in sender.cpp atomic
dreampearl [Thu, 22 Apr 2021 11:18:18 +0000 (16:48 +0530)] 
PROTON-2377: [cpp] Make tag_counter in sender.cpp atomic

17 months agoNO-JIRA Workaround Travis CI package installation issues (#311)
Jiri Daněk [Fri, 7 May 2021 16:45:35 +0000 (18:45 +0200)] 
NO-JIRA Workaround Travis CI package installation issues (#311)

17 months agoPROTON-2370: [cpp] An accessor for the delivery tag (#309)
Rakhi Kumari [Thu, 22 Apr 2021 09:33:07 +0000 (15:03 +0530)] 
PROTON-2370: [cpp] An accessor for the delivery tag (#309)

17 months agoPROTON-2375: Small connection_driver API change
Andrew Stitcher [Tue, 16 Mar 2021 20:09:31 +0000 (16:09 -0400)] 
PROTON-2375: Small connection_driver API change

Make connection_driver API more efficient when finishing writes

This allows epoll proactor to efficiently avoid delving directly into
the transport buffers.

Also small small clean ups.

17 months agoPROTON-2321 Add benchmark for pn_data_t initialization from PROTON-2229 (#286)
Jiri Daněk [Mon, 19 Apr 2021 20:32:32 +0000 (22:32 +0200)] 
PROTON-2321 Add benchmark for pn_data_t initialization from PROTON-2229 (#286)

17 months agoPROTON-2357: Improve test coverage in url.cpp (#303)
Rakhi Kumari [Wed, 14 Apr 2021 19:10:05 +0000 (00:40 +0530)] 
PROTON-2357: Improve test coverage in url.cpp (#303)

18 months agoPROTON-2367, PROTON-2300: bump version to 0.35.0-SNAPSHOT
Robbie Gemmell [Tue, 6 Apr 2021 12:12:06 +0000 (13:12 +0100)] 
PROTON-2367, PROTON-2300: bump version to 0.35.0-SNAPSHOT

18 months agoPROTON-2300: update versions for 0.34.0-rc1 0.34.0 0.34.0-rc1
Robbie Gemmell [Tue, 6 Apr 2021 11:11:17 +0000 (12:11 +0100)] 
PROTON-2300: update versions for 0.34.0-rc1

18 months agoPROTON-2354: Fix to the new destructors that works with C++03
Andrew Stitcher [Mon, 5 Apr 2021 21:29:16 +0000 (17:29 -0400)] 
PROTON-2354: Fix to the new destructors that works with C++03

We do still support C++03 and the previous fix had the wrong exception
specification for pre C++11 destructors:

The base exception (std::runtime_error) is specified to not throw any
exeptions so we need to specify the new destructors the same way.
C++11 defaults to non throwing destructors so omitting the exception
specification works there. However earlier C++ doesn't default like this
and so we need to do this explicitly for C++03. The explicit specification
works fine for C++11 as it doesn't actually change anything there.

18 months agoPROTON-2300: update .so versions after review
Robbie Gemmell [Mon, 5 Apr 2021 11:26:00 +0000 (12:26 +0100)] 
PROTON-2300: update .so versions after review

18 months agoPROTON-2355: Definitively fix CMake 2.8.12 incompatibility w/ generexp in add_library...
Jiri Daněk [Fri, 2 Apr 2021 23:57:24 +0000 (01:57 +0200)] 
PROTON-2355: Definitively fix CMake 2.8.12 incompatibility w/ generexp in add_library (#306)

18 months agoPROTON-2355: Fix CMake 2.8.12 incompatibility in the original fix (#305)
Jiri Daněk [Fri, 2 Apr 2021 20:31:59 +0000 (22:31 +0200)] 
PROTON-2355: Fix CMake 2.8.12 incompatibility in the original fix (#305)

18 months agoPROTON-2344: fix Python BlockingConnection resource leaks, memory and socket fds
Cliff Jansen [Fri, 2 Apr 2021 18:46:39 +0000 (11:46 -0700)] 
PROTON-2344: fix Python BlockingConnection resource leaks, memory and socket fds

18 months agoPROTON-2354: Better fix for some 'macOS' test failures
Andrew Stitcher [Fri, 2 Apr 2021 03:07:26 +0000 (23:07 -0400)] 
PROTON-2354: Better fix for some 'macOS' test failures

Actually these failures aren't specific to macOS rather to clang's
libc++ runtime library which is pickier about RTTI information
being exported for excpetion catching and dynamic_cast<>.

18 months agoPROTON-2355: Fix build with -DPROACTOR=none (#302)
Jiri Daněk [Thu, 1 Apr 2021 17:24:33 +0000 (19:24 +0200)] 
PROTON-2355: Fix build with -DPROACTOR=none (#302)

epoll proactor unconditionally uses pthread.h which will result in the
following build failure:

[  3%] Building C object c/CMakeFiles/qpid-proton-proactor-objects.dir/src/proactor/epoll.c.o
In file included from /nvme/rc-buildroot-test/scripts/instance-0/output-1/build/qpid-proton-0.33.0/c/src/proactor/epoll.c:60:
/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/qpid-proton-0.33.0/c/src/proactor/epoll-internal.h:37:10: fatal error: pthread.h: No such file or directory
   37 | #include <pthread.h>
      |          ^~~~~~~~~~~

To fix this failure, the user could use -DPROACTOR=none but it also
fails on:

CMake Error at c/CMakeLists.txt:481 (add_library):
  Error evaluating generator expression:

    $<TARGET_OBJECTS:qpid-proton-proactor-objects>

  Objects of target "qpid-proton-proactor-objects" referenced but no such
  target exists.

Co-authored-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
18 months agoPROTON-2351: allow Travis based OSX runs not to fail the overall job for now, to...
Robbie Gemmell [Thu, 1 Apr 2021 16:46:12 +0000 (17:46 +0100)] 
PROTON-2351: allow Travis based OSX runs not to fail the overall job for now, to help avoid masking issues on other OS runs. GHA MacOS builds will still fail.

18 months agoPROTON-2248: [c] Some code doc fixes
Andrew Stitcher [Fri, 19 Mar 2021 20:10:10 +0000 (16:10 -0400)] 
PROTON-2248: [c] Some code doc fixes

18 months agoPROTON-2354: Fix some macOSX test failures
Andrew Stitcher [Fri, 26 Mar 2021 21:24:31 +0000 (17:24 -0400)] 
PROTON-2354: Fix some macOSX test failures

Also tidy up macOSX options a little.

18 months agoPROTON-2332: [C++] Allow access to link properties (#293)
Pete Fawcett [Wed, 24 Mar 2021 09:59:52 +0000 (09:59 +0000)] 
PROTON-2332: [C++] Allow access to link properties (#293)

Enable setting of link properties via sender and receiver options
Enable querying of link properties set by remote end

18 months agoPROTON-2346: c/src/proactor/epoll-internal.h: fix build on musl (#300)
Jiri Daněk [Tue, 23 Mar 2021 08:00:46 +0000 (09:00 +0100)] 
PROTON-2346: c/src/proactor/epoll-internal.h: fix build on musl (#300)

* PROTON-2346: c/src/proactor/epoll-internal.h: fix build on musl

Build with epoll proactor on musl is broken since at least version 0.23.0 and
https://github.com/apache/qpid-proton/commit/37136940e3077f25ce58c94775f48c66f666f4a8
because musl does not define PTHREAD_MUTEX_ADAPTIVE_NP resulting in the
following build failure:

In file included from /home/giuliobenetti/autobuild/run/instance-0/output-1/build/qpid-proton-0.33.0/c/src/proactor/epoll.c:60:
/home/giuliobenetti/autobuild/run/instance-0/output-1/build/qpid-proton-0.33.0/c/src/proactor/epoll-internal.h: In function 'pmutex_init':
/home/giuliobenetti/autobuild/run/instance-0/output-1/build/qpid-proton-0.33.0/c/src/proactor/epoll-internal.h:319:36: error: 'PTHREAD_MUTEX_ADAPTIVE_NP' undeclared (first use in this function); did you mean 'PTHREAD_MUTEX_STALLED'?
  319 |   pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_ADAPTIVE_NP);
      |                                    ^~~~~~~~~~~~~~~~~~~~~~~~~
      |                                    PTHREAD_MUTEX_STALLED

Fixes:
 - http://autobuild.buildroot.org/results/6a901b9ff68b7f52cabf8273d1017025fbd93b0d

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
* Update c/src/proactor/epoll-internal.h with explanatory comment

Co-authored-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
18 months agoPROTON-2342 Apply patch for non-constant SIGSTKSZ from Fedora to Catch
Jiri Danek [Sat, 20 Mar 2021 15:48:13 +0000 (16:48 +0100)] 
PROTON-2342 Apply patch for non-constant SIGSTKSZ from Fedora to Catch

https://src.fedoraproject.org/rpms/catch1/c/059104ba87494c0b5ebe16844ec190f253e51cac?branch=rawhide

18 months agoPROTON-2342 Upgrade Catch to v1.12.2
Jiri Danek [Sat, 20 Mar 2021 15:45:49 +0000 (16:45 +0100)] 
PROTON-2342 Upgrade Catch to v1.12.2

https://github.com/catchorg/Catch2/releases/tag/v1.12.2

18 months agoPROTON-2343: Tidy up build flag selection
Andrew Stitcher [Fri, 16 Oct 2020 20:28:46 +0000 (16:28 -0400)] 
PROTON-2343: Tidy up build flag selection

It should now be much clearer what build flags apply to which builds

18 months agoPROTON-2340: Another small fix to raw_echo for Visual Studio C compilers
Andrew Stitcher [Thu, 11 Mar 2021 03:32:18 +0000 (22:32 -0500)] 
PROTON-2340: Another small fix to raw_echo for Visual Studio C compilers

This avoids C99 VLAs and the gnu/clang extension that imitates them.

18 months agoPROTON-2340: Small fixes to raw_echo to avoid warnings
Andrew Stitcher [Thu, 11 Mar 2021 02:03:28 +0000 (21:03 -0500)] 
PROTON-2340: Small fixes to raw_echo to avoid warnings

Also avoid requiring C99.

19 months agoPROTON-2340: Make raw connection echo example multithreaded
Andrew Stitcher [Fri, 5 Mar 2021 03:58:38 +0000 (22:58 -0500)] 
PROTON-2340: Make raw connection echo example multithreaded

WIPWIPWIP: This stops the example exiting cleanly - needs investigation
This helps to expose the TSAN problems

19 months agoPROTON-2340: Fix some TSAN issues in proactor raw connection
Andrew Stitcher [Fri, 5 Mar 2021 03:47:06 +0000 (22:47 -0500)] 
PROTON-2340: Fix some TSAN issues in proactor raw connection

19 months agoPROTON-2338: Removed some unused code that was bothering clang
Andrew Stitcher [Tue, 2 Mar 2021 21:56:26 +0000 (16:56 -0500)] 
PROTON-2338: Removed some unused code that was bothering clang

Also improved the code documentation a little.

19 months agoPROTON-2339: Proactor raw connection: Introduce DRAIN_BUFFERS event
Andrew Stitcher [Wed, 24 Feb 2021 18:24:39 +0000 (13:24 -0500)] 
PROTON-2339: Proactor raw connection: Introduce DRAIN_BUFFERS event

This will supercede the use of READ/WRITTEN events to tell the
application to retrieve its buffers before DISCONNECT.

This more specific event should be clearer in purpose.

For backwards compatibility with existing code, if the application
doesn't drain the buffers in response to the drain event, we will
send the read/written events (as applicable) as well. This behaviour
should be removed when the existing major application (dispatch) is
fixed to use this new event.

19 months agoPROTON-2338:: Added some testing for raw connection half close
Andrew Stitcher [Tue, 23 Feb 2021 22:14:11 +0000 (17:14 -0500)] 
PROTON-2338:: Added some testing for raw connection half close

Unit test half close
Half close write side in raw_connect when writing final message

19 months agoPROTON-2338: Implement proactor raw connection half close operations
Andrew Stitcher [Fri, 12 Feb 2021 02:14:52 +0000 (21:14 -0500)] 
PROTON-2338: Implement proactor raw connection half close operations

The raw connection state machine has been rejigged to encompass half closed
states. The previous separate read/write state booleans have been
combined into a single state. This should allow for clearer connection
state tracking.

19 months agoPROTON-2338: [proactor] Add prototypes for new raw connection half close operations
Andrew Stitcher [Tue, 2 Feb 2021 01:39:06 +0000 (20:39 -0500)] 
PROTON-2338: [proactor] Add prototypes for new raw connection half close operations

- Add stubs for libuv and win_iocp proactor implementations

19 months agoPROTON-2334: fix libuv proactor PN_PROACTOR_INACTIVE event generation
Cliff Jansen [Mon, 22 Feb 2021 17:41:04 +0000 (09:41 -0800)] 
PROTON-2334: fix libuv proactor PN_PROACTOR_INACTIVE event generation

19 months agoPROTON-2322 Fix various flake8 warnings (manual changes) (#289)
Jiri Daněk [Sat, 20 Feb 2021 13:58:51 +0000 (14:58 +0100)] 
PROTON-2322 Fix various flake8 warnings (manual changes) (#289)

* PROTON-2320 Configure and enable flake8 in tox

19 months agoPROTON-2337: epoll proactor - missing lock on variable increment, found by TSAN
Cliff Jansen [Fri, 19 Feb 2021 06:19:58 +0000 (22:19 -0800)] 
PROTON-2337: epoll proactor - missing lock on variable increment, found by TSAN

19 months agoPROTON-2217 Prefer first working Python on PATH, prefer Py3 over Py2 (#294)
Jiri Daněk [Thu, 18 Feb 2021 15:33:48 +0000 (16:33 +0100)] 
PROTON-2217 Prefer first working Python on PATH, prefer Py3 over Py2 (#294)

19 months agoNO-JIRA Upgrade to Clang 11 in .travis.yml (#298)
Jiri Daněk [Thu, 18 Feb 2021 15:32:55 +0000 (16:32 +0100)] 
NO-JIRA Upgrade to Clang 11 in .travis.yml (#298)

19 months agoPROTON-2334: c-fdlimit-tests fix for libuv immediate close connection drain behaviour...
Cliff Jansen [Fri, 12 Feb 2021 18:02:43 +0000 (10:02 -0800)] 
PROTON-2334: c-fdlimit-tests fix for libuv immediate close connection drain behaviour for EMFILE accept() error

19 months agoPROTON-2334: threaderciser test - simultaneous connect and pn_proactor_disconnect()
Cliff Jansen [Fri, 12 Feb 2021 16:33:53 +0000 (08:33 -0800)] 
PROTON-2334: threaderciser test - simultaneous connect and pn_proactor_disconnect()

19 months agoNO-JIRA Add two forgotten test files to the project (#296)
Jiri Daněk [Wed, 10 Feb 2021 18:48:28 +0000 (19:48 +0100)] 
NO-JIRA Add two forgotten test files to the project (#296)

20 months agoPROTON-2329: [C++] ssl example - added bad_option handler.
Thomas Kettenbach [Fri, 22 Jan 2021 15:00:32 +0000 (15:00 +0000)] 
PROTON-2329: [C++] ssl example - added bad_option handler.

20 months agoPROTON-2329: [C++] ssl example - fix option parsing.
Thomas Kettenbach [Fri, 22 Jan 2021 14:46:41 +0000 (14:46 +0000)] 
PROTON-2329: [C++] ssl example - fix option parsing.

20 months agoPROTON-2307: Allow setting of connection properties via connection_options
Pete Fawcett [Wed, 2 Dec 2020 18:56:45 +0000 (18:56 +0000)] 
PROTON-2307: Allow setting of connection properties via connection_options

Allow access to properties on incoming connections

closes #278

20 months agoFix auto_accept doc typo
Jacob Middag [Mon, 25 Jan 2021 12:11:49 +0000 (13:11 +0100)] 
Fix auto_accept doc typo

20 months agoPROTON-2328: epoll proactor, use local variable not zeroed task member to track warm...
Cliff Jansen [Mon, 25 Jan 2021 17:06:29 +0000 (09:06 -0800)] 
PROTON-2328: epoll proactor, use local variable not zeroed task member to track warm pairings

20 months agoPROTON-2326: epoll proactor refactor - make all tasks wakeable in generic manner...
Cliff Jansen [Sun, 24 Jan 2021 19:18:30 +0000 (11:18 -0800)] 
PROTON-2326: epoll proactor refactor - make all tasks wakeable in generic manner.  This closes #290

20 months agoPROTON-2326: epoll proactor refactor - provide proactor as direct argument to notify_...
Cliff Jansen [Thu, 21 Jan 2021 06:33:34 +0000 (22:33 -0800)] 
PROTON-2326: epoll proactor refactor - provide proactor as direct argument to notify_poller(), not indirect via task

20 months agoPROTON-2326: epoll proactor refactor - "schedule" instead of "wake", "task" instead...
Cliff Jansen [Sun, 24 Jan 2021 18:54:21 +0000 (10:54 -0800)] 
PROTON-2326: epoll proactor refactor - "schedule" instead of "wake", "task" instead of "context"

20 months agoPROTON-2327: Fix example build breakage on cmake 2.8.12
Andrew Stitcher [Fri, 22 Jan 2021 15:33:00 +0000 (10:33 -0500)] 
PROTON-2327: Fix example build breakage on cmake 2.8.12

20 months agoNO-JIRA: update year in NOTICE file
Robbie Gemmell [Mon, 18 Jan 2021 16:15:05 +0000 (16:15 +0000)] 
NO-JIRA: update year in NOTICE file

20 months agoPROTON-2319 Remove Python 2.3 and Jython 2.5 compatibility code (#288)
Jiri Daněk [Fri, 15 Jan 2021 14:36:15 +0000 (15:36 +0100)] 
PROTON-2319 Remove Python 2.3 and Jython 2.5 compatibility code (#288)

20 months agoPROTON-2320 Apply second round of autopep8 (--aggressive * 3) (#287)
Jiri Daněk [Fri, 15 Jan 2021 13:52:45 +0000 (14:52 +0100)] 
PROTON-2320 Apply second round of autopep8 (--aggressive * 3) (#287)

20 months agoPROTON-2320 Apply first round of autopep8 (whitespace changes, mostly) (#285)
Jiri Daněk [Thu, 14 Jan 2021 17:36:12 +0000 (18:36 +0100)] 
PROTON-2320 Apply first round of autopep8 (whitespace changes, mostly) (#285)