5 years agoPROTON-1330: [python] bundle the C source in the python source distribution 0.15.x
Kenneth Giusti [Tue, 1 Nov 2016 17:21:15 +0000 (13:21 -0400)] 
PROTON-1330: [python] bundle the C source in the python source distribution

5 years agoPROTON-1323: update the versions for 0.15.0 (RC1) 0.15.0 0.15.0-rc1
Robert Gemmell [Mon, 10 Oct 2016 16:08:51 +0000 (17:08 +0100)] 
PROTON-1323: update the versions for 0.15.0 (RC1)

5 years agoPROTON-1323: update notes for releasing
Robert Gemmell [Mon, 10 Oct 2016 16:02:15 +0000 (17:02 +0100)] 
PROTON-1323: update notes for releasing

(cherry picked from commit c6d366c60a58b5095a16254f5b4aec29464ddffe)

5 years agoPROTON-1313: c++: missing #include <string> in some headers
Alan Conway [Thu, 6 Oct 2016 15:26:16 +0000 (11:26 -0400)] 
PROTON-1313: c++: missing #include <string> in some headers

Several header files that use std::string were missing #include <string>:


5 years agoNO-JIRA: go: minor cleanup in dispatch loop code.
Alan Conway [Thu, 6 Oct 2016 15:08:38 +0000 (11:08 -0400)] 
NO-JIRA: go: minor cleanup in dispatch loop code.

needTick check did not need to be in inner loop.

6 years agoNO-JIRA: Add missing dependencies to INSTALL.md for ruby binding.
Alan Conway [Thu, 29 Sep 2016 13:19:53 +0000 (09:19 -0400)] 
NO-JIRA: Add missing dependencies to INSTALL.md for ruby binding.

6 years agoPROTON-1308: Go: Support Idle Timeout setting in electron Transport
Alan Conway [Wed, 28 Sep 2016 17:00:22 +0000 (13:00 -0400)] 
PROTON-1308: Go: Support Idle Timeout setting in electron Transport

electron.Heartbeat(time.Duration) returns a ConnectionOption that will set the
required heartbeat interval for the remote peer. See electron.Heartbeat
and electron.ConnectionSettings.Heartbeat

NOTE: The term "Heartbeat" was chosen to avoid the ambiguous term
"idle-timeout". Heartbeat *always* refers to the max allowed duration
between *sending* frames. The frame receiver waits for 2*remote-heartbeat before
closing a connection.

6 years agoPROTON-1308: Go: fix typos in some AMQP condition names
Alan Conway [Wed, 28 Sep 2016 15:56:14 +0000 (11:56 -0400)] 
PROTON-1308: Go: fix typos in some AMQP condition names

6 years agoPROTON-1307: go binding amqp.message does not honor Inferred flag
Alan Conway [Tue, 27 Sep 2016 19:03:57 +0000 (15:03 -0400)] 
PROTON-1307: go binding amqp.message does not honor Inferred flag

Applied fix provided by Richard Laos for typo in the SetInferred method.

6 years agoNO-JIRA: Fix delay in some python tests using the EchoServer.
Alan Conway [Tue, 27 Sep 2016 18:50:06 +0000 (14:50 -0400)] 
NO-JIRA: Fix delay in some python tests using the EchoServer.

Server should close on transport_error as well as connection_closing.

6 years agoNO-JIRA: Made go_/cpp_ ctest target names consistent as go-/cpp-
Alan Conway [Tue, 27 Sep 2016 18:40:02 +0000 (14:40 -0400)] 
NO-JIRA: Made go_/cpp_ ctest target names consistent as go-/cpp-

6 years agoPROTON-1306: Go container improvements and client-server example.
Alan Conway [Fri, 9 Sep 2016 16:37:01 +0000 (12:37 -0400)] 
PROTON-1306: Go container improvements and client-server example.

Added convenience ops to Container: Dial and Accept.
Added client-server documentation example.
Added Container.String(), improve other proton String() funcs.

6 years agoNO-JIRA: Fixed missing error checks reported by go-errcheck
Alan Conway [Mon, 12 Sep 2016 20:13:09 +0000 (16:13 -0400)] 
NO-JIRA: Fixed missing error checks reported by go-errcheck

6 years agoPROTON-1293: Go binding SASL support.
Alan Conway [Tue, 6 Sep 2016 17:11:09 +0000 (13:11 -0400)] 
PROTON-1293: Go binding SASL support.

proton package
- added sasl.h to the Go proton wrapper generator.
- capitalized as "SASL" *not* "Sasl", consistent with Go conventions (e.g. URL)
- added SASL() accessor to proton.Transport.
- Engine.Run() extra dispatch and check as pn_connection_engine_read/write_buffer()
  can generate events that close the transport in an auth failure.
- Engine.Id()/String() use transport address to match PN_TRACE_ logs.
- Drop auto-open of engine: let user set security first.

electron package:
- new ConnectionOption: User, Password, VirtualHost, SASLAllowInsecure, SASLAllowedMechs
- global settings with GlobalSASLConfigDir, GobalSASLConfName
- IncomingConnection allows user to accept/reject authenticated incoming connections
- updated & improved documentation
- Endpoint.Sync() synchronous check of endpoint open, to verify authenticated.

Note: Password option takes []byte not string. There is no way to securely erase
a string from memory, an array can be over-written.

6 years agoPROTON-1255: connection_engine separate bind from _init
Alan Conway [Tue, 6 Sep 2016 16:39:36 +0000 (12:39 -0400)] 
PROTON-1255: connection_engine separate bind from _init

SASL/SSL properties must be set on connection and transport *before* the
pn_transport_bind() call, move it out of pn_connection_engine_init() and add
pn_connection_engine_start() that must be called before using the engine but
after security (and other) properties are set.

Updated the Go and C++ engines accordingly.

6 years agoPROTON-1305: Go sporadic test failure in electron_test
Alan Conway [Thu, 8 Sep 2016 23:37:25 +0000 (19:37 -0400)] 
PROTON-1305: Go sporadic test failure in electron_test

Reliably reproduced by:
    . config.sh && go test qpid.apache.org/electron -run TestLinkCloseInterrupt -count 100

Fixed missing error check in receiver.ReceiveTimeout()

6 years agoNO-JIRA: go config.sh added env vars to Go tests directly.
Alan Conway [Wed, 7 Sep 2016 19:04:05 +0000 (15:04 -0400)] 
NO-JIRA: go config.sh added env vars to Go tests directly.

You can run go tests like this:

    . config.sh
    go test qpid.apache.org/...   # All package tests
    go test qpid.apache.org/proton # proton package tests.

6 years agoMerge PROTON-1303
Andrew Stitcher [Fri, 16 Sep 2016 15:56:24 +0000 (11:56 -0400)] 
Merge PROTON-1303
Closes #81

6 years agoPROTON-1303: Comment out examples that give different output for go 1.4 81/head
Andrew Stitcher [Fri, 16 Sep 2016 14:45:22 +0000 (10:45 -0400)] 
PROTON-1303: Comment out examples that give different output for go 1.4

6 years agoPROTON-1303: Use LastIndex instead of LastIndexByte to compile with go 1.4 too
Andrew Stitcher [Thu, 15 Sep 2016 19:14:34 +0000 (15:14 -0400)] 
PROTON-1303: Use LastIndex instead of LastIndexByte to compile with go 1.4 too

6 years agoPROTON-1304: Changed OpenSSL interface code to not need time at all 80/head
Andrew Stitcher [Mon, 12 Sep 2016 18:54:22 +0000 (14:54 -0400)] 
PROTON-1304: Changed OpenSSL interface code to not need time at all
- Used the openssl session client cache without having own cache that needs expiring.

6 years agoPROTON-1303: Replace go binding URL parser with version that doesn't use the Proton...
Andrew Stitcher [Fri, 9 Sep 2016 17:59:02 +0000 (13:59 -0400)] 
PROTON-1303: Replace go binding URL parser with version that doesn't use the Proton URL parser

6 years agoOTON-1302: Fixup to bf615adf to implement fallback timestamp::now() when C++11 is...
Andrew Stitcher [Thu, 15 Sep 2016 18:47:06 +0000 (14:47 -0400)] 
OTON-1302: Fixup to bf615adf to implement fallback timestamp::now() when C++11 is not present

6 years agoPROTON-1301: Fix leak in c-condition-test.
Alan Conway [Thu, 15 Sep 2016 17:26:29 +0000 (12:26 -0500)] 
PROTON-1301: Fix leak in c-condition-test.

6 years agoPROTON-1158: empty commit for Pull Request cleanup. This closes #70. It seems to...
Robert Gemmell [Thu, 15 Sep 2016 16:30:46 +0000 (17:30 +0100)] 
PROTON-1158: empty commit for Pull Request cleanup. This closes #70. It seems to have been applied from the JIRA comments.

6 years agoNO-JIRA: empty commit for Pull Request cleanup. This closes #18
Robert Gemmell [Thu, 15 Sep 2016 16:30:41 +0000 (17:30 +0100)] 
NO-JIRA: empty commit for Pull Request cleanup. This closes #18

6 years agoPROTON-1302: Remove use of pn_io_t from C++ binding
Andrew Stitcher [Mon, 12 Sep 2016 20:02:16 +0000 (16:02 -0400)] 
PROTON-1302: Remove use of pn_io_t from C++ binding
- Added pn_reactor_error() API

6 years agoPROTON-1302: Rewrite proton::timestamp::now in terms of std::chrono and make it C...
Andrew Stitcher [Tue, 13 Sep 2016 17:48:54 +0000 (13:48 -0400)] 
PROTON-1302: Rewrite proton::timestamp::now in terms of std::chrono and make it C++11 only
- Portability and allows independence of proton-c platform code

6 years agoNO-JIRA: Removed totally unused parser member from pn_message.
Andrew Stitcher [Tue, 30 Aug 2016 14:49:51 +0000 (10:49 -0400)] 
NO-JIRA: Removed totally unused parser member from pn_message.

6 years agoPROTON-1301: add pn_condition_format for formatted descriptions
Alan Conway [Tue, 6 Sep 2016 21:05:09 +0000 (17:05 -0400)] 
PROTON-1301: add pn_condition_format for formatted descriptions

Add pn_condition_format/vformat similar to pn_error_format/vformat so a
condition description can be set using a printf-style format string.

6 years agoNO-JIRA: Fix swig warnings related to pn_rwbytes_t
Alan Conway [Tue, 13 Sep 2016 14:20:57 +0000 (09:20 -0500)] 
NO-JIRA: Fix swig warnings related to pn_rwbytes_t

6 years agoPROTON-1300: remove redundant setLinkCredit(0) call to avoid minor confusion
Robert Gemmell [Mon, 12 Sep 2016 17:57:19 +0000 (18:57 +0100)] 
PROTON-1300: remove redundant setLinkCredit(0) call to avoid minor confusion

6 years agoPROTON-1299: update getRemoteCredit() handling to account for the differing behaviour...
Robert Gemmell [Mon, 12 Sep 2016 17:39:11 +0000 (18:39 +0100)] 
PROTON-1299: update getRemoteCredit() handling to account for the differing behaviour of senders and receivers

6 years agoNO-JIRA: remove unused imports
Robert Gemmell [Mon, 12 Sep 2016 10:34:56 +0000 (11:34 +0100)] 
NO-JIRA: remove unused imports

6 years agoPROTON-1224, PROTON-1295: fix recent change to ensure method is invoked on the conver...
Robert Gemmell [Fri, 2 Sep 2016 18:55:29 +0000 (19:55 +0100)] 
PROTON-1224, PROTON-1295: fix recent change to ensure method is invoked on the converter, add additional keyfile+test to ensure tests really do exercise that codepath

6 years agoPROTON-1294: c++ examples: remove un-necessary 64-bit integers
Alan Conway [Thu, 1 Sep 2016 16:51:55 +0000 (12:51 -0400)] 
PROTON-1294: c++ examples: remove un-necessary 64-bit integers

64 bit integers cause portability problems on some platforms (e.g. need extra
atomic library support on ppc 32 bit) and do not enhance the examples, keep them simple.

6 years agoPROTON-1224: support using newer versions of bouncycastle.
Robert Gemmell [Thu, 1 Sep 2016 09:26:41 +0000 (10:26 +0100)] 
PROTON-1224: support using newer versions of bouncycastle.

This closes #78
This closes #79

6 years agoPROTON-1224: rework loading of bouncycastle to ensure failure is detected, but suppre...
Robert Gemmell [Thu, 25 Aug 2016 14:48:06 +0000 (15:48 +0100)] 
PROTON-1224: rework loading of bouncycastle to ensure failure is detected, but suppressed since its optional, and actually reported at the point usage would fail. Fix up various whitespace etc issues.

6 years agoPROTON-1224: Support newer BouncyCastle Implementations
Jem Day [Mon, 22 Aug 2016 20:37:39 +0000 (13:37 -0700)] 
PROTON-1224: Support newer BouncyCastle Implementations

Support new version of BouncyCastle library via existing reflection
Added Unit-tests

6 years agoNO-JIRA: Bump python binding version to next major release
Kenneth Giusti [Tue, 30 Aug 2016 12:53:06 +0000 (08:53 -0400)] 
NO-JIRA: Bump python binding version to next major release

6 years agoPROTON-1287: c++: missing empty() method on message_id, annotation_key
Alan Conway [Tue, 23 Aug 2016 14:28:27 +0000 (15:28 +0100)] 
PROTON-1287: c++: missing empty() method on message_id, annotation_key

Added empty() to scalar_base(), since all restricted scalar types can be missing
in a message, so they need to allow the possibility of empty()

Moved internal::scalar_base to proton::scalar_base as it provides part of the
public API.

Moved internal::value_base::empty() and type() to proton::value. There's no need for them
to be on the internal class and they are public API.

Added unit tests to confirm default values on proton::message, esp. empty scalar values.

6 years agoNO-JIRA: fix rarely used example
Gordon Sim [Fri, 26 Aug 2016 11:03:46 +0000 (12:03 +0100)] 
NO-JIRA: fix rarely used example

6 years agoPROTON-1291: simplify methods for state change, add targeted test of effect on modifi...
Robert Gemmell [Fri, 26 Aug 2016 10:21:54 +0000 (11:21 +0100)] 
PROTON-1291: simplify methods for state change, add targeted test of effect on modified state

6 years agoPROTON-1291 Check local state on open / close calls
Timothy Bish [Thu, 25 Aug 2016 22:08:49 +0000 (18:08 -0400)] 
PROTON-1291 Check local state on open / close calls

When open or close is called on an endpoint, check that the state
doesn't already reflect the request to avoid marking the endpoint as
modified when it shouldn't be

6 years agoPROTON-1290 Don't send extra flow on receiver detach
Timothy Bish [Wed, 24 Aug 2016 21:00:18 +0000 (17:00 -0400)] 
PROTON-1290 Don't send extra flow on receiver detach

Prevent erroneous flow frame from being written when receiver is
detached when a pending drain is waiting completion.

6 years agoPROTON-1289: Added code coverage infrastructure to build
Andrew Stitcher [Fri, 19 Aug 2016 22:21:05 +0000 (18:21 -0400)] 
PROTON-1289: Added code coverage infrastructure to build
This is currently C/C++ only, but can be extended to other languages too.
This will typically be used like this:
- make
- make test
- make coverage
- # Copy result from the coverage_results/html directory

6 years agoPROTON-1275: avoid IAE in reactor when connect process fails by preventing a pop...
Robert Gemmell [Tue, 23 Aug 2016 14:17:18 +0000 (15:17 +0100)] 
PROTON-1275: avoid IAE in reactor when connect process fails by preventing a pop with negative pending (but do try to pop since it may still be needed)

6 years agoPROTON-1283: allow the transport impl to accept additional wrapper layers
Robert Gemmell [Tue, 23 Aug 2016 09:27:31 +0000 (10:27 +0100)] 
PROTON-1283: allow the transport impl to accept additional wrapper layers

This closes #77

6 years agoPROTON-1282: Seg Fault in Ruby Messenger pn_messenger_free
Alan Conway [Sat, 20 Aug 2016 15:21:54 +0000 (16:21 +0100)] 
PROTON-1282: Seg Fault in Ruby Messenger pn_messenger_free

Add an at_exit to ensure the Messenger is stopped before shutdown.

6 years agoPROTON-1277: pn_connection_engine to use pn_bytes_t and pn_rwbytes_t
Alan Conway [Tue, 9 Aug 2016 17:11:22 +0000 (18:11 +0100)] 
PROTON-1277: pn_connection_engine to use pn_bytes_t and pn_rwbytes_t

Removed types pn_buf_t and pn_cbuf_t.

Replaced pn_cbuf_t with existing public type pn_bytes_t.
Replaced pn_buf_t with new public type pn_rwbytes_t.
Replaced internal pn_buffer_memory_t with pn_rwbytes_t.

6 years agoNO-JIRA: c++: inline messaging_handler, remove allocations.
Alan Conway [Mon, 15 Aug 2016 14:42:58 +0000 (15:42 +0100)] 
NO-JIRA: c++: inline messaging_handler, remove allocations.

Remove un-necessary heap alloc of messaging_handler in connection_engine:

Ensure messaging_adapter ctor and dtor are inline.
Stack alloc the messaging_adapter in every dispatch()
Inline ctor/dtor are free in an optimized build, and we avoid the heap alloc.

6 years agoNO-JIRA: C++: Fix typo in last commit (doc warnings from doxygen.)
Alan Conway [Mon, 15 Aug 2016 13:57:22 +0000 (14:57 +0100)] 
NO-JIRA: C++: Fix typo in last commit (doc warnings from doxygen.)

6 years agoNO-JIRA: C++: Fix doc warnings from doxygen.
Alan Conway [Mon, 15 Aug 2016 13:00:17 +0000 (14:00 +0100)] 
NO-JIRA: C++: Fix doc warnings from doxygen.

6 years agoPROTON-1281: [C++ Binding] Missed #include <ostream>
Andrew Stitcher [Tue, 9 Aug 2016 13:55:38 +0000 (09:55 -0400)] 
PROTON-1281: [C++ Binding] Missed #include <ostream>
- This was causing a difficult to find link error on FreeBSD/clang++

  The code in question was using ostream& << std::string("whatever");
  but only including <string> which only declares the operator<< used.

  However you need <ostream> to define the necessary template instantiation.
  If you don't include <ostream> then it becomes an unknown symbol.

  This only happens when compiling with -O2 or -O3. I think this is
  because these options inline the template instantiation in other
  places so that the symbol is not available in the library anymore.

6 years agoPROTON-1280: Fix Messenger Selectable test
Andrew Stitcher [Tue, 9 Aug 2016 10:37:10 +0000 (06:37 -0400)] 
PROTON-1280: Fix Messenger Selectable test
- I hate this kind of fix!
- We now have a very short time out in select instead of 0 timeout
  (polling behaviour) so that we don't finish if it takes a little time to
  receive an end of stream on one of our sockets.
- It seems that on Linux you reliably get the end of stream on the select()
  call immediately after closing the socket at the other end locally
- But on FreeBSD you usually don't get the EOS immediately, you need to enter
  the kernel first: this was causing the test to fail on FreeBSD.

6 years agoPROTON-1279: [C++ binding] Turn off unreachable warning for clang for code where...
Andrew Stitcher [Fri, 5 Aug 2016 22:14:21 +0000 (18:14 -0400)] 
PROTON-1279: [C++ binding] Turn off unreachable warning for clang for code where it is intentional

6 years agoNO-JIRA: Partially revert 9a25f6bbba722b3ac1bc75ca5247809b431c2b38
Andrew Stitcher [Thu, 11 Aug 2016 16:08:04 +0000 (12:08 -0400)] 
NO-JIRA: Partially revert 9a25f6bbba722b3ac1bc75ca5247809b431c2b38
- We actually do use Check_Library_Exists()!

6 years agoNO-JIRA: Removed unused CMake includes
Andrew Stitcher [Thu, 11 Aug 2016 15:37:12 +0000 (11:37 -0400)] 
NO-JIRA: Removed unused CMake includes

6 years agoNO-JIRA: Fix coverity scan error in cpp/src/engine_test.cpp
Alan Conway [Mon, 8 Aug 2016 14:26:20 +0000 (15:26 +0100)] 
NO-JIRA: Fix coverity scan error in cpp/src/engine_test.cpp

Added missing ASSERT statement.

6 years agoPROTON-1274: avoid costly event context lookup
Kenneth Giusti [Fri, 5 Aug 2016 19:33:43 +0000 (15:33 -0400)] 
PROTON-1274: avoid costly event context lookup

6 years agoPROTON-1273: Don't hardcode port 12345 in Python messenger tests
Andrew Stitcher [Thu, 4 Aug 2016 20:38:48 +0000 (16:38 -0400)] 
PROTON-1273: Don't hardcode port 12345 in Python messenger tests

6 years agoPROTON-1272: [C++ binding] Allow example_test to run on Python 2.6
Andrew Stitcher [Wed, 3 Aug 2016 14:36:55 +0000 (10:36 -0400)] 
PROTON-1272: [C++ binding] Allow example_test to run on Python 2.6

6 years agoPROTON-1243: Stop pn_reactor_stop from causing an infinite loop when called from...
Andrew Stitcher [Fri, 29 Jul 2016 03:49:27 +0000 (23:49 -0400)] 
PROTON-1243: Stop pn_reactor_stop from causing an infinite loop when called from within callback

6 years agoPROTON-1271: Bump the .so major version on master to 9 for the next release
Justin Ross [Tue, 2 Aug 2016 03:29:35 +0000 (20:29 -0700)] 
PROTON-1271: Bump the .so major version on master to 9 for the next release

6 years agoPROTON-1271: Update master versions after branching for 0.14.0
Justin Ross [Tue, 2 Aug 2016 02:56:05 +0000 (19:56 -0700)] 
PROTON-1271: Update master versions after branching for 0.14.0

6 years agoPROTON-1241: [C++ binding] Move ownership chain of messaging_handler & messaging_adapter
Andrew Stitcher [Fri, 29 Jul 2016 17:21:26 +0000 (13:21 -0400)] 
PROTON-1241: [C++ binding] Move ownership chain of messaging_handler & messaging_adapter
- messaging_handler now has no data members
- messaging_adapters are now owned by the container_impl
  They are kept in a list and are auto deleted when the container_impl is deleted

6 years agoPROTON-1269: [C++ binding] Add missing handlers
Andrew Stitcher [Thu, 28 Jul 2016 16:44:18 +0000 (12:44 -0400)] 
PROTON-1269: [C++ binding] Add missing handlers
- on_receiver_detach & on_sender_detach
- on_container_stop
- Made underlying pn_link_detach() idempotent.

6 years agoPROTON-1238: [C++ binding] Add fallback operator<< for wrapped proton-c objects
Andrew Stitcher [Wed, 27 Jul 2016 18:59:34 +0000 (14:59 -0400)] 
PROTON-1238: [C++ binding] Add fallback operator<< for wrapped proton-c objects

6 years agoPROTON-1237: Improve connection_engine event logging
Andrew Stitcher [Tue, 26 Jul 2016 19:42:45 +0000 (15:42 -0400)] 
PROTON-1237: Improve connection_engine event logging

6 years agoPROTON-1270: [C++ binding] Add new overloads for open_sender & open_receiver
Andrew Stitcher [Mon, 25 Jul 2016 17:08:29 +0000 (13:08 -0400)] 
PROTON-1270: [C++ binding] Add new overloads for open_sender & open_receiver
- These allow you to create senders and receivers with connection options
  but without specifying empty sender_options or receiver_options.

6 years agoPROTON-1244: [C++ binding] Add conection options to set user and password
Andrew Stitcher [Thu, 21 Jul 2016 06:00:38 +0000 (02:00 -0400)] 
PROTON-1244: [C++ binding] Add conection options to set user and password
- Refactor to connection_options setting to minimize use of connector
- Improve broker example not to die if no queue address is supplied

6 years agoPROTON-1230: Set up SASL environment for C++ tests
Andrew Stitcher [Fri, 22 Jul 2016 23:23:05 +0000 (19:23 -0400)] 
PROTON-1230: Set up SASL environment for C++ tests

6 years agoNO-JIRA: Stop clang complaining about new service_bus example
Andrew Stitcher [Mon, 25 Jul 2016 03:41:51 +0000 (23:41 -0400)] 
NO-JIRA: Stop clang complaining about new service_bus example

This reverts commit b2b74c7ce2aba10aac46c931fdbfc8ea701f49bd.

6 years agoPROTON-1268: Test fixes, that allow direct tox testing to work better.
Andrew Stitcher [Fri, 22 Jul 2016 22:41:38 +0000 (18:41 -0400)] 
PROTON-1268: Test fixes, that allow direct tox testing to work better.

6 years agoPROTON-1267: Service Bus example
Cliff Jansen [Fri, 22 Jul 2016 14:40:35 +0000 (07:40 -0700)] 
PROTON-1267: Service Bus example

6 years agoNO-JIRA: Add python 3.5 to tox; build clean ups.
Andrew Stitcher [Thu, 21 Jul 2016 05:41:22 +0000 (01:41 -0400)] 
NO-JIRA: Add python 3.5 to tox; build clean ups.

6 years agoPROTON-1265: Fix some problems using python 3 with proton-c
Andrew Stitcher [Wed, 20 Jul 2016 06:21:12 +0000 (02:21 -0400)] 
PROTON-1265: Fix some problems using python 3 with proton-c

6 years agoPROTON-1263: c++ add proton::to_string for value and scalar types
Alan Conway [Wed, 20 Jul 2016 15:09:22 +0000 (11:09 -0400)] 
PROTON-1263: c++ add proton::to_string for value and scalar types

Provides ostream<< representation as a string, with std::boolalpha so
boolean prints as true/false.

Also added for proton::url, since conversion to/from string is common.
Cleaned up value op<< to use the scalar op<< for scalar values.

6 years agoPROTON-1165: examples/cpp/mt/epoll_container testing wrong error value
Alan Conway [Tue, 19 Jul 2016 16:30:41 +0000 (12:30 -0400)] 
PROTON-1165: examples/cpp/mt/epoll_container testing wrong error value

The code was incorrectly testing the return value of read()/write() against
EINTR instead of errno.

6 years agoNO-JIRA: go: Add missing dependency to go examples CMakeLists.txt
Alan Conway [Fri, 15 Jul 2016 21:56:19 +0000 (17:56 -0400)] 
NO-JIRA: go: Add missing dependency to go examples CMakeLists.txt

6 years agoNO-JIRA: Suppress warnings from swig compilation.
Alan Conway [Fri, 15 Jul 2016 21:52:30 +0000 (17:52 -0400)] 
NO-JIRA: Suppress warnings from swig compilation.

6 years agoPROTON-1237: c: connection_engine event logging.
Alan Conway [Fri, 15 Jul 2016 21:21:53 +0000 (17:21 -0400)] 
PROTON-1237: c: connection_engine event logging.

Environment variable PN_TRACE_EVENT=1 prints proton C event names using the
transport trace log facility. Mostly useful for low-level debugging while doing
binding work but might be of use to users in some cases.

6 years agoNO-JIRA: c++: add error reporting to mt_brokr.cpp
Alan Conway [Fri, 15 Jul 2016 21:08:42 +0000 (17:08 -0400)] 
NO-JIRA: c++: add error reporting to mt_brokr.cpp

6 years agoPROTON-1258: Make transport events more consistent on client and server
Andrew Stitcher [Wed, 13 Jul 2016 23:23:26 +0000 (19:23 -0400)] 
PROTON-1258: Make transport events more consistent on client and server
- This is almost the same as 4a601011 but with some review fixes from

6 years agoRevert "PROTON-1258: Make transport events more consistent on client and server"
Alan Conway [Fri, 15 Jul 2016 18:23:26 +0000 (14:23 -0400)] 
Revert "PROTON-1258: Make transport events more consistent on client and server"

This reverts commit 4a6010110296846e3c77defc0558a45d8792d3b5.

This commit crashes the cpp_mt_example_test in a release build (but not in a
debug or reldbg build which is worth investigating separtely)

The connection engine relies on the events generated by correct use of
pn_transport_t. PROTON-1258 is a reactor bug: the reactor needs to be fixed to
close the transport correctly, before unbinding it, so that it can generate the
proper close events in the proper sequence. The handler should not be involved.

6 years agoPROTON-1258: Make transport events more consistent on client and server
Andrew Stitcher [Wed, 13 Jul 2016 23:23:26 +0000 (19:23 -0400)] 
PROTON-1258: Make transport events more consistent on client and server

6 years agoPROTON-1239: Add accessor to connection for authenticated user.
Andrew Stitcher [Fri, 1 Jul 2016 22:53:46 +0000 (18:53 -0400)] 
PROTON-1239: Add accessor to connection for authenticated user.
- Also had to fix pn_transport_get_user() to act correctly on a server
  where sasl parameters were set but sasl itself was not required.

6 years agoPROTON-1256: Track and check auto-detected protocol layers
Andrew Stitcher [Thu, 14 Jul 2016 14:57:30 +0000 (10:57 -0400)] 
PROTON-1256: Track and check auto-detected protocol layers

6 years agoPROTON-1257: C++ fix cached_map assignment
Cliff Jansen [Thu, 14 Jul 2016 17:13:16 +0000 (10:13 -0700)] 
PROTON-1257: C++ fix cached_map assignment

6 years agoPROTON-1252: Produce useful transport error conditions on sasl errors
Andrew Stitcher [Fri, 8 Jul 2016 21:51:05 +0000 (17:51 -0400)] 
PROTON-1252: Produce useful transport error conditions on sasl errors

6 years agoPROTON-1237: go: go binding uses C pn_connection_engine_t
Alan Conway [Thu, 7 Jul 2016 15:09:31 +0000 (11:09 -0400)] 
PROTON-1237: go: go binding uses C pn_connection_engine_t

- modified Go binding implementation to use pn_connection_engine_t instead of
  directly driving the engine objects.

6 years agoPROTON-1237: go: let go build handle dependencies for go examples
Alan Conway [Thu, 7 Jul 2016 15:06:39 +0000 (11:06 -0400)] 
PROTON-1237: go: let go build handle dependencies for go examples

Manual cmake dependencies were missing changes to the C library or headers and
causing crashes in out-of-date example executables.

Just run `go build` and `go test` every time, they get it right and don't
take any time if there is nothing to do.

6 years agoPROTON-1237: C connection_engine interface and implementation.
Alan Conway [Wed, 6 Jul 2016 22:38:03 +0000 (18:38 -0400)] 
PROTON-1237: C connection_engine interface and implementation.

- ported C++ connection_engine to C pn_connection_engine_t
- replace C++ connection_engine impl with pn_connection_engine_t
- make container/event_loop optional for a connection_engine.
- untangled link_namer from connection engine.

6 years agoNO-JIRA: c++: don't use `cmake -E env`, not available on older cmake
Alan Conway [Thu, 7 Jul 2016 14:45:35 +0000 (10:45 -0400)] 
NO-JIRA: c++: don't use `cmake -E env`, not available on older cmake

6 years agoNO-JIRA: c++: tidy up test CMakefile environment settings
Alan Conway [Wed, 6 Jul 2016 16:12:09 +0000 (12:12 -0400)] 
NO-JIRA: c++: tidy up test CMakefile environment settings

6 years agoNO-JIRA: Make simplecov optional in .travis.yml
Alan Conway [Wed, 6 Jul 2016 03:03:54 +0000 (23:03 -0400)] 
NO-JIRA: Make simplecov optional in .travis.yml

The travis builds were failing to `gem install simplecov`. Made this
step optional so the builds run, but are not using simplecov.

6 years agoPROTON-1249: Safeguard type initialisations. 76/head
Dominic Evans [Fri, 18 Mar 2016 11:20:23 +0000 (11:20 +0000)] 
PROTON-1249: Safeguard type initialisations.

In #readValue() for ArrayType, BinaryType, ListType and MapType
decoding, if the 'count' specified is very large then it is likely to
trigger an OutOfMemoryException. As these can come from an external data
source, during the SASL init for example, there is a potential for a
denial of service. The fix is to throw an IllegalArgumentException if
the count value is larger than the amount of data available in the
received bytes.

6 years agoNO-JIRA: Add value_ref, clean access to pn_data_t* via value interface
Alan Conway [Thu, 23 Jun 2016 22:00:24 +0000 (18:00 -0400)] 
NO-JIRA: Add value_ref, clean access to pn_data_t* via value interface

value_ref allows a class to return a "value&" that provides access to an
internally-held pn_data_t*, and provides a single point of "friendship" for
creating a proton::value by copying from a value_ref.

6 years agoPROTON-1240: Fill in connection::virtual_host() with remote connection host field
Andrew Stitcher [Wed, 29 Jun 2016 16:28:45 +0000 (12:28 -0400)] 
PROTON-1240: Fill in connection::virtual_host() with remote connection host field

6 years agoPROTON-1247: Fix symbol export for transfer, delivery & tracker
Andrew Stitcher [Mon, 27 Jun 2016 20:38:20 +0000 (16:38 -0400)] 
PROTON-1247: Fix symbol export for transfer, delivery & tracker
PROTON-1248: Allow API to query state of delivery and tracker