summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/broker/Connection.cpp
Commit message (Collapse)AuthorAgeFilesLines
* NO-JIRA: QPID-3921: More Header file tidy upAndrew Stitcher2013-01-311-0/+1
| | | | | | - Removed all unnecessary includes from qpid/broker/Connection.h git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1440778 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4514: Remove IO readCredit throttling only used by removed cluster codeAndrew Stitcher2013-01-301-1/+0
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1440616 13f79535-47bb-0310-9956-ffa450edef68
* NO-JIRA: Removed Timer.h out of the chain of header files included by Broker.hAndrew Stitcher2012-12-211-0/+1
| | | | | | (since that is widely included) to avoid unnecessary recompilation git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1425037 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4514: Remove obsolete cluster code: Connection::isAuthenticatedAlan Conway2012-12-191-3/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1424135 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4514: Remove obsolete cluster code: DtxManager, more Broker, ↵Alan Conway2012-12-191-19/+0
| | | | | | Connection, Link. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1424126 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4514: Remove obsolete cluster code: Broker, Connection, Link.Alan Conway2012-12-191-24/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1424125 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4449 - Reverted much of the original change and re-implemented the fix ↵Ted Ross2012-11-301-1/+1
| | | | | | | | | | in a simpler way. The build-define _IN_QPID_BROKER is now used for modules built in the broker. The shared-pointer changes are conditionally compiled only for in-broker cases. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1415796 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4449 - Fixed the API in qpid::management::Manageable to remain backward ↵Ted Ross2012-11-201-1/+1
| | | | | | compatible. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1411761 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4368: Add protocol description to connection schemaGordon Sim2012-10-191-1/+1
| | | | | | | Conflicts: qpid/cpp/src/qpid/broker/Connection.cpp git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1400174 13f79535-47bb-0310-9956-ffa450edef68
* MQPID-4286: QMF queries for HA replication take too long to process (Jason ↵Alan Conway2012-10-151-4/+3
| | | | | | | | | | Dillaman) Rework ManagementAgent locks, get rid of shared buffers that were points of contention. Minor log message improvements in ha code. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1398530 13f79535-47bb-0310-9956-ffa450edef68
* NO-JIRA: Removed now unused cluster specific ClusterSafe code.Andrew Stitcher2012-09-131-5/+3
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1384555 13f79535-47bb-0310-9956-ffa450edef68
* NO-JIRA: Fix race in Connection, management object deleted while in use.Alan Conway2012-09-111-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1383452 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4174: add client properties to client-related events. Original patch ↵Ken Giusti2012-09-101-2/+2
| | | | | | from Pavel Moravec git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1382830 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4142 C++ Broker connection counting. Revert r1371772 which applied only ↵Charles E. Rolke2012-09-071-8/+0
| | | | | | to 0.18 and is obsolete on trunk. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1382155 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4142 C++ Broker connection counting gets usernames confused Charles E. Rolke2012-08-101-0/+8
| | | | | | | | | | when various auth mechanism are used. The issue is that the connection's userId is changed as the auth progresses. Also, the shadowed connections change differently from the non-shadowed connections. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1371772 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4079 log entries track managed object life cyclesCharles E. Rolke2012-07-131-0/+6
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1361262 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3849: Client connection breaks broker-to-broker cluster SASL ↵Alan Conway2012-06-221-3/+6
| | | | | | | | | | | | authentication Catch-up shadow connections were not being authenticated which caused two problems: - new brokers failed to join the cluster if there was an authenticated session. - possible security loophole that would allow an intruder to gain access to a catch-up broker. All external connections are now fully authenticated, which solves both problems. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1352992 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4022 C++ Broker connection limits by host ip and by user name.Charles E. Rolke2012-06-111-3/+0
| | | | | | | | | | | Rework the strategy to deny connections based on configured limits. All limits checked in one function from points in broker when the user's authenticated name is known. Denied connections receive the AMQP exception instead of getting the socket closed. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1348707 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4040 - Close federation links after lost heartbeats.Ted Ross2012-06-061-0/+48
| | | | | | | Applied patch from Andy Goldstein. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1347044 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4005: Eliminate "using" especially "using namespace" from header fileAndrew Stitcher2012-05-161-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1339403 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3875: fix indentationKen Giusti2012-03-021-14/+14
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1296449 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3875: allow direct access to per-thread statisticsKen Giusti2012-03-021-10/+14
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1296448 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3603: Merge new HA foundations.Alan Conway2012-02-171-18/+20
| | | | | | | Merged from qpid-3603-7. This is basic support for the new HA approach. For information & limitations see qpid/cpp/design_docs/new-ha-design.txt. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1245587 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3603: Added public broker::Connection::isLink function.Alan Conway2012-01-181-16/+16
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1233088 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3438Michael Goulish2012-01-051-2/+1
| | | | | | | | | | Remove unnecessary changes to broker. The cluster code does not really need to know that the cnx error was due to auth failure. Any failure before the cnx has opened should cause the cnx to be removed from the 'local' map, or a cnx leak will occur. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1227616 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3438Michael Goulish2011-12-161-1/+2
| | | | | | | fix cluster causing cnx leak when bad credentials are given in login attempt. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1215127 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3553: prevent multiple connection-tune-ok controls from leaving ↵Gordon Sim2011-11-031-4/+8
| | | | | | dangling pointers in timer git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1197218 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3033: Segmentation fault while processing session.attachAlan Conway2011-08-181-10/+1
| | | | | | | | | | | | | | | The initial fix for this bug was incomplete. The original bug was triggered by a faulty client sending session.attach before connection.open. The special case is when the session.attach is on channel 0. This commit fixes the broker for all cases where a faulty client sends frames before completly opening the connection. Older versions of the Java client are known to send this faulty sequence sporadically, see https://issues.apache.org/jira/browse/QPID-3042. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1159329 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3288: "[C++] Broker sets federation link tag as empty string () when no ↵Kim van der Riet2011-06-061-3/+3
| | | | | | tag is present in the client/server properties" git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1132623 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3121: Cluster management inconsistency when using persistent store.Alan Conway2011-03-071-0/+3
| | | | | | | | | | | | | | | | | | | | With the store doing async completions, completion IO callbacks could be queued differently on different nodes. This led to inconsistent management changes in a cluster when a connection was modified in an IO callback. Fix was to mark IO callback processing as not cluster safe, so connections don't record management stats during an IO callback. Test changes: - enable durable tests in test_management. - add substitutions to mask known issue of inconsistent "stats changed" messages. - add transactional client to test_management. - ignore heartbeat connection close logs in cluster_test_logs.py - make brokertest.retry more accurate - fix minor bug in brokertest.log_ready. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1078947 13f79535-47bb-0310-9956-ffa450edef68
* QPID-2630: ensure that exclusive, auto-deleted queues are freed up on early ↵Gordon Sim2011-03-011-8/+0
| | | | | | deletion (remove some confusion between connection and session scope for these) git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1075777 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3084: apply Alan's fix to allow io callbacks to run during a cluster ↵Ken Giusti2011-02-241-11/+15
| | | | | | update. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1074332 13f79535-47bb-0310-9956-ffa450edef68
* QPID-2935: merge producer flow control (C++ broker).Ken Giusti2011-02-191-2/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1072356 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3033 Bug 674183 - Segmentation fault while processing session.attachAlan Conway2011-02-021-1/+4
| | | | | | | | | If a faulty client sent invalid frames to a connection that was not yet in the open state, the broker would core dump. The fix is to close the connection with a 'framing-error' in this case. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1066661 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3007: Don't record management statistics in cluster-unsafe contexts.Alan Conway2011-02-011-2/+4
| | | | | | | | | | A few frames are sent in cluster-unsafe contexts, e.g. heartbeat timer callbacks and during initial connection negotiation. Don't update the connection's management counters in these contexts to avoid inconsistent management data in a cluster. There are very few such frames so this does not unduly distort the management data. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1066215 13f79535-47bb-0310-9956-ffa450edef68
* QPID-2991: added message counts to connection stats; fixed xxxToClient statsGordon Sim2011-01-111-4/+43
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1057578 13f79535-47bb-0310-9956-ffa450edef68
* SASLizing Interbroker LinksMichael Goulish2010-10-201-0/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ------------------------------------------------------------- 1. Brokers already knew how to handle the server side of SASLized links, but not the client side. So we promoted the client-side SASL code from the client library to the common library so that the broker could also use it. This affected SaslFactory.{h,cpp} and Sasl.h TODO -- can the server-side and client-side code be unified here? 2. Some of the SASL verbs in broker/ConnectionHandler.cpp are expanded: start, secure, tune. 3. broker/SecureConnection is altered to get the client-broker and the server-broker to agree on when the security layer should be inserted. 4. the python tool qpid-route is modified so that, in the "route add" command, you can specify the security mechanism for SASL to use. TODO -- should we also pass in {min,max}SSF ? 5. Changes in broker/LinkRegistry to allow the information input by qpid-route to be passed up to where it is needed. 6. A bash script test run by "make check" that creates a SASLized federation link and sends some messages down it. TODO - write a python unit test instead of a bash script. I think I uncovered a bug in the python code when I tried. 7. NOTE - testing for this feature does not work with versions of SASL earlier than 2.1.22, becuase I can't tell SASL to use a SASL database file in a nonstandard location. The test is disabled for earlier versions. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1024541 13f79535-47bb-0310-9956-ffa450edef68
* Code cleanup in broker directory.Alan Conway2010-10-141-1/+2
| | | | | | | | - Removed un-necessary #includes for broker/Queue.h - Removed "using std::string" in header files. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1022679 13f79535-47bb-0310-9956-ffa450edef68
* Give timer tasks a name for logging purposes.Alan Conway2010-08-261-2/+2
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@989925 13f79535-47bb-0310-9956-ffa450edef68
* Make management+cluster test more aggressive.Alan Conway2010-06-231-1/+2
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@957337 13f79535-47bb-0310-9956-ffa450edef68
* Fix cluster broker crashes when management is active.Alan Conway2010-06-221-10/+20
| | | | | | | | | | | | Cluser brokers were exiting with errors "modified cluster state outside cluster context" and "confirmed < (50+0) but only sent < (49+0)" Fix was to: - delay completion of incoming update till update connection closes. - delay addding new connections to managment until connection is announced. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@956882 13f79535-47bb-0310-9956-ffa450edef68
* Fix cluster-safe assertion in connection negotiation.Alan Conway2010-06-091-1/+11
| | | | | | | | See https://bugzilla.redhat.com/show_bug.cgi?id=602347. In a cluster, raise the management connect event when processing cluster.announce. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@953147 13f79535-47bb-0310-9956-ffa450edef68
* Cluster handle connection-negotiation phase in local broker.Alan Conway2010-06-081-2/+1
| | | | | | | | | | | | | | | | | The connection negotiation phase up to the "open" or "open-ok" frame establishes whether/what encryption to use for the rest of the connection. With this patch a cluster broker completes the initial negotiation with its local clients and only then begins multicasting to other brokers. The local broker decrypts if necessary and multicasts in the clear. This replaces a problematic locking scheme that was formerly in place which caused deadlocks. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@952692 13f79535-47bb-0310-9956-ffa450edef68
* Cluster + SecurityMichael Goulish2010-05-141-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ----------------------------------- * initial observation of a problem was a 2% failure rate in perftests of 20,000 messages against a cluster with security enabled. Problem was occasional receit of encrypted frames before the security codec had been enabled. This is fixed with locking in cluster code (no new locks in broker code) and a callback that is fired by broker::ConnectionHandler::Handler to tell the cluster code when the opening handshake has finished. This was never a problem in the non-clustered broker before because everything happened in a single thread. * the brokers that "shadow" the connection must not have null authenticators rather than real ones, so that they go through all the motions but don't do anythig. Only the directly-connected broker can perform the security handshake. * once the directly-connected broker receives the real user ID from its callback, it mcasts that ID to all other brokers. Otherwise the shadowing brokers will al think that the user ID is "anonymous". Check this by doing a substantial perftest, and using qpid-stat -c localhost:PORT to confirm that the brokers all have the same userID for the same connection. * the user ID, negotiated during the Sasl security startup, is communicated from the directly connected broker to all other cluster brokers. * If security is *not* being used, then this code should *not* tell the brokers anything about the userID -- or it will step on the value that is being set by other code pathways. * test program at cpp/src/tests/cluster_authentication_soak is not yet fully automated -- run it with something like "sudo ./cluster_authentication_soak 500" git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@944158 13f79535-47bb-0310-9956-ffa450edef68
* Fix QPID-2435. This patch removes the "publishNow" feature from the broker ↵Ted Ross2010-03-051-1/+1
| | | | | | agent. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@919619 13f79535-47bb-0310-9956-ffa450edef68
* QPID-2412: Support for EXTERNAL mechanism on client-authenticated SSL ↵Gordon Sim2010-03-051-2/+4
| | | | | | | | | | | | connections. On SSL connection where the clients certificate is authenticated (requires the --ssl-require-client-authentication option at present), the clients identity will be taken from that certificate (it will be the CN with any DCs present appended as the domain, e.g. CN=bob,DC=acme,DC=com would result in an identity of bob@acme.com). This will enable the EXTERNAL mechanism when cyrus sasl is in use. The client can still negotiate their desired mechanism. There is a new option on the ssl module (--ssl-sasl-no-dict) that allows the options on ssl connections to be restricted to those that are not vulnerable to dictionary attacks (EXTERNAL being the primary example). git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@919487 13f79535-47bb-0310-9956-ffa450edef68
* Consistent connection names across a cluster.Alan Conway2010-02-051-3/+3
| | | | | | | | | - use the same host:port for connections and their shadows. - add shadow property to managment connection to identify shadows. - updated qpid-stat and qpid-cluster to filter on shadow property. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@907123 13f79535-47bb-0310-9956-ffa450edef68
* QPID-2347: Signal deletion of queue to active subscribers via a ↵Gordon Sim2010-01-221-0/+4
| | | | | | resource-deleted exception. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@902055 13f79535-47bb-0310-9956-ffa450edef68
* Removed dead code: OutputTask::hasOutput and Queue::checkForMessages.Alan Conway2010-01-141-2/+0
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@899356 13f79535-47bb-0310-9956-ffa450edef68
* QPID-2188 , support for maxConnections, limit is set to brokerCarl C. Trieloff2009-11-171-0/+3
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@881517 13f79535-47bb-0310-9956-ffa450edef68