diff options
author | Gordon Sim <gsim@apache.org> | 2012-06-20 11:10:36 +0000 |
---|---|---|
committer | Gordon Sim <gsim@apache.org> | 2012-06-20 11:10:36 +0000 |
commit | 6aa531b140d441a55128b2a9c2f26543dd8224ab (patch) | |
tree | a2b01fd968a795d54b949f28db8fc95e60509991 | |
parent | 1ceed2aa220c5209d45b9290a44ee52d51556d2f (diff) | |
download | qpid-python-6aa531b140d441a55128b2a9c2f26543dd8224ab.tar.gz |
QPID-4076: Patch from Andy Goldstein, don't use infinite credit on bridges with explicit acknolwedgements
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1352046 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | qpid/cpp/src/qpid/broker/Bridge.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/qpid/cpp/src/qpid/broker/Bridge.cpp b/qpid/cpp/src/qpid/broker/Bridge.cpp index 63325a1e91..d1706b5907 100644 --- a/qpid/cpp/src/qpid/broker/Bridge.cpp +++ b/qpid/cpp/src/qpid/broker/Bridge.cpp @@ -117,7 +117,7 @@ void Bridge::create(Connection& c) if (initialize) initialize(*this, sessionHandler); else if (args.i_srcIsQueue) { peer->getMessage().subscribe(args.i_src, args.i_dest, args.i_sync ? 0 : 1, 0, false, "", 0, options); - peer->getMessage().flow(args.i_dest, 0, 0xFFFFFFFF); + peer->getMessage().flow(args.i_dest, 0, args.i_sync ? 2 * args.i_sync : 0xFFFFFFFF); peer->getMessage().flow(args.i_dest, 1, 0xFFFFFFFF); QPID_LOG(debug, "Activated bridge " << name << " for route from queue " << args.i_src << " to " << args.i_dest); } else { @@ -145,8 +145,8 @@ void Bridge::create(Connection& c) peer->getQueue().declare(queueName, altEx, false, durable, exclusive, autoDelete, queueSettings); if (!args.i_dynamic) peer->getExchange().bind(queueName, args.i_src, args.i_key, FieldTable()); - peer->getMessage().subscribe(queueName, args.i_dest, 1, 0, false, "", 0, FieldTable()); - peer->getMessage().flow(args.i_dest, 0, 0xFFFFFFFF); + peer->getMessage().subscribe(queueName, args.i_dest, (useExistingQueue && args.i_sync) ? 0 : 1, 0, false, "", 0, options); + peer->getMessage().flow(args.i_dest, 0, (useExistingQueue && args.i_sync) ? 2 * args.i_sync : 0xFFFFFFFF); peer->getMessage().flow(args.i_dest, 1, 0xFFFFFFFF); if (args.i_dynamic) { |