summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/client/ConnectionImpl.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Defer Poller creation in ConnectionImpl IOThread from creation to first use.Alan Conway2010-03-231-3/+6
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@926650 13f79535-47bb-0310-9956-ffa450edef68
* Make sure the client library Poller is created on library load before ↵Andrew Stitcher2010-03-221-0/+9
| | | | | | | | | anything in the client program can be run. This ensures that it will be destroyed after anything in the client program is destroyed git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@925949 13f79535-47bb-0310-9956-ffa450edef68
* QPID 24448: throw if no channels available when adding a session.Alan Conway2010-03-151-1/+2
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@923415 13f79535-47bb-0310-9956-ffa450edef68
* QPID-2412: Support for EXTERNAL mechanism on client-authenticated SSL ↵Gordon Sim2010-03-051-1/+1
| | | | | | | | | | | | 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
* Ensure that shutting down an unsuccessful connect can't race with connection ↵Andrew Stitcher2010-01-211-3/+9
| | | | | | deletion git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@901553 13f79535-47bb-0310-9956-ffa450edef68
* Remove possible double closing of connection on connect failureAndrew Stitcher2010-01-211-7/+4
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@901552 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1879 Don't use a thread for every new client ConnectionAndrew Stitcher2010-01-211-4/+91
| | | | | | | | | | | - By default the max number of threads now used for network io is the number of cpus available. - This can be overridden with the QPID_MAX_IOTHREADS environment variable or the config file - The client threads are initialised (via a singleton) when first used in a Connection::open() git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@901550 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1899: Applied patch from Ken Giusti to tie in SASL enctryption to the ↵Gordon Sim2009-11-091-0/+1
| | | | | | handling of the --require-encrypted option git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@834108 13f79535-47bb-0310-9956-ffa450edef68
* Fix memory leak in testCoincidentErrors due to un-joined connector thread.Alan Conway2009-10-301-2/+8
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@831446 13f79535-47bb-0310-9956-ffa450edef68
* Make Session::close and Connection::close no-throwAlan Conway2009-10-271-5/+8
| | | | | | | close() will often be called in destructors and so should not throw exceptions. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@830268 13f79535-47bb-0310-9956-ffa450edef68
* Separate FailoverListener from client::Connection.Alan Conway2009-10-261-7/+2
| | | | | | | | | | | | | | | | | | client::ConnectionImpl used to contain a FailoverListener to subscribe for updates on the amq.failover exchange. This caused some lifecycle issues including memory leaks. Now FailoverListener is a public API class that the user must create associated with a session to get known-broker updates. Removed the weak_ptr logic in client::SessionImpl which was only required because of FailoverListener. Made SessionImpl::close() idempotent. Gets rid of spurious warning messages in some tests. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@829931 13f79535-47bb-0310-9956-ffa450edef68
* Fix problems with sessions going out of scope and session numbers wrapping ↵Alan Conway2009-10-211-7/+16
| | | | | | | | | | | | | around. Fixes QPID-1789: sessions that go out of scope without being detached will detach themselves. Also fixes several issues that arise when the session numbers wraps around and start re-using old numbers. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@828108 13f79535-47bb-0310-9956-ffa450edef68
* QPID-2112 - C++ Client: Facility needed for app to extract the user-ID in ↵Ted Ross2009-09-221-0/+6
| | | | | | use for a connection git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@817770 13f79535-47bb-0310-9956-ffa450edef68
* Add directory to #includeAlan Conway2009-07-141-5/+5
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@793909 13f79535-47bb-0310-9956-ffa450edef68
* Make sure you close down heartbeatTimer for every close even if you don'tAndrew Stitcher2009-06-231-1/+2
| | | | | | | need to do anything else git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@787809 13f79535-47bb-0310-9956-ffa450edef68
* Make sure the heartbeat interval is started for the waitForOpenCarl C. Trieloff2009-06-081-1/+2
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@782494 13f79535-47bb-0310-9956-ffa450edef68
* Revert "QPID-1879 Don't use a thread for every new client Connection"Andrew Stitcher2009-06-031-88/+4
| | | | | | | This reverts commit b54680d4b3341fa280a237a6d80952b9830ae3c5. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@781378 13f79535-47bb-0310-9956-ffa450edef68
* Revert "Change client io threading to be initialised at first use"Andrew Stitcher2009-06-031-7/+4
| | | | | | | This reverts commit 2e77e9b85912ccbfd29763710a973d0bbff9c684. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@781375 13f79535-47bb-0310-9956-ffa450edef68
* Some fixes to QPID-1879 so that clustering still works:Andrew Stitcher2009-06-011-4/+7
| | | | | | | | | Change client io threading to be initialised at first use Stop linking loadable modules with tests Add some sentinel values so that we can see what happened last git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@780855 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1879 Don't use a thread for every new client ConnectionAndrew Stitcher2009-05-281-4/+88
| | | | | | | | | | - By default the max number of threads now used for network io is the number of cpus available. - This can be overridden with the QPID_MAX_IOTHREADS environment variable or the config file git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@779435 13f79535-47bb-0310-9956-ffa450edef68
* Fix issue with python clients to cluster, mis handling of channel 0.Alan Conway2009-05-041-1/+4
| | | | | | | | cpp/src/qpid/client/ConnectionImpl.cpp: allow 0 as a valid channel identifier. python/qpid/connection.py: don't use 0 as a channel identifier. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@771452 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1785: Prevent session.detach following execution.exception from ↵Gordon Sim2009-04-081-3/+5
| | | | | | destroying the connection. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@763163 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1705: cancel heartbeat timer task as part of cleanupGordon Sim2009-03-021-0/+3
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@749297 13f79535-47bb-0310-9956-ffa450edef68
* Removed BodyHolder: minor performance improvement, opens the way for more ↵Alan Conway2009-01-221-1/+1
| | | | | | efficient memory management. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@736783 13f79535-47bb-0310-9956-ffa450edef68
* Minor formatting fixes and typo correction.Gordon Sim2009-01-151-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@734668 13f79535-47bb-0310-9956-ffa450edef68
* Implement heartbeat timeout on client:Andrew Stitcher2009-01-131-1/+39
| | | | | | | | - The client shuts down a connection if it receives no traffic on it in 2 timeout periods git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@734221 13f79535-47bb-0310-9956-ffa450edef68
* * Cyrus SASL intgeration for c++ clientGordon Sim2009-01-061-0/+8
| | | | | | | | * SASL security layer support for c++ client and broker git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@732082 13f79535-47bb-0310-9956-ffa450edef68
* Avoid potential deadlock between IO thread in Connector::handleClosed() and ↵Gordon Sim2008-12-021-1/+4
| | | | | | application thread in ConnectionImpl::closed() git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@722554 13f79535-47bb-0310-9956-ffa450edef68
* Restrict connection close codes to the set defined in the specGordon Sim2008-11-061-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@711989 13f79535-47bb-0310-9956-ffa450edef68
* This line seems not to be as redundant as I thought! Its removal seems to ↵Gordon Sim2008-11-031-0/+1
| | | | | | trigger some leaks for some platforms/cases. Adding it back for now. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@710124 13f79535-47bb-0310-9956-ffa450edef68
* Various fixes arising from testing client failover:Gordon Sim2008-11-031-8/+15
| | | | | | | | | | | | | | | | | | | | * introduced new exception type for signalling connection failure (as distinct from any logical connection errors) * ConnectionImpl::closeInternal(): take copy of session map to prevent concurrent modification (by the same thread) as sessions are deleted and erase themselves. * ConnectionImpl::shutdown: hold lock before calling closeInternal(); mark handler failed before informing sessions of failure * SessionImpl::connectionBroker(): remove code as its rather meaningless * Don't swallow exceptions in Dispatcher * Handle exceptions in FailoverListener * Take weak_ptr to ConnectionImpl on constructor of Connector, then convert to shared_ptr when 'receiver' thread is started. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@710106 13f79535-47bb-0310-9956-ffa450edef68
* Fix compile errors introduced by Address changesStephen D. Huston2008-10-241-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@707760 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1382 from Mick Goulish: Improvement to Client-Side Cluster Failover codeAlan Conway2008-10-221-2/+0
| | | | | | | | | Also: Fix missing DispatchHandle.h include in sys/PollableQueue.h Added ignore properties for failover example binaries & Makefile. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@707065 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1367 Mick Goulish: improvements to client-side failover.Alan Conway2008-10-171-4/+4
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@705668 13f79535-47bb-0310-9956-ffa450edef68
* Fix race in cluster causing incorrect known-broker lists to be sent to clients.Alan Conway2008-10-161-8/+10
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@705287 13f79535-47bb-0310-9956-ffa450edef68
* Bug fixes for client-side failover.Alan Conway2008-10-141-0/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@704596 13f79535-47bb-0310-9956-ffa450edef68
* Failover client and example fixes & tidy up.Alan Conway2008-10-101-5/+2
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@703532 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1340 froM Mick Goulish: preliminary client-side failover support.Alan Conway2008-10-101-3/+10
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@703319 13f79535-47bb-0310-9956-ffa450edef68
* Client-side support for amq.faiover exchange. Connection::getKnownBrokers ↵Alan Conway2008-10-091-4/+25
| | | | | | provides latest list. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@703237 13f79535-47bb-0310-9956-ffa450edef68
* Cluster join & brain-dumps working.Alan Conway2008-10-031-3/+5
| | | | | | | | | cluster: improved join protocol, fixed race conditions. client/ConnectionHandler,ConnectionImpl: fixed connection close race causing client hang. src/qpid/sys/PollableQueue.h: fixed incorrect use of startWatch/stopWatch. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@701532 13f79535-47bb-0310-9956-ffa450edef68
* Refactored c++ client library to allow multiple protocols to beAndrew Stitcher2008-09-111-6/+10
| | | | | | | | | | | | | | | used simultaneously: - Added in capability for client library plugins: Client library will load in plugin modules from the client library module directory on library load. - Add protocol option into the standard client command line options - Split plugin module load area into daemon and client; default daemon module directory is now <libdir>/qpid/daemon, default client module directory is <libdir>/qpid/client. - Changed names of plugins to leave out libqpid prefix git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@694113 13f79535-47bb-0310-9956-ffa450edef68
* Generate c++ enum types for AMQP enums in framing/enum.h.Alan Conway2008-09-091-5/+6
| | | | | | | Modified enum scheme to avoid name clashes: namespace amqp_class { EnumName { ENUM_NAME_X=1, ENUM_NAME_X=2 ...}}; git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@693465 13f79535-47bb-0310-9956-ffa450edef68
* Removed unused functionsAndrew Stitcher2008-07-291-1/+0
| | | | | | | | | Removed unused Thread and Socket functions - These functions also cause problems with Solaris compilations Remove unused client connector functionality git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@680833 13f79535-47bb-0310-9956-ffa450edef68
* Refactor to change client connector state machine to be held in ↵Andrew Stitcher2008-07-241-15/+5
| | | | | | ConnectionHandler git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@679268 13f79535-47bb-0310-9956-ffa450edef68
* Some small changes which clean up header file inclusionsAndrew Stitcher2008-07-091-10/+11
| | | | | | | | and generally start to tidy up the network layer so that it's a bit easier to implement new network transports git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@675338 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1137: don't treat connection as opened if the open never succeedsGordon Sim2008-06-261-2/+10
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@671877 13f79535-47bb-0310-9956-ffa450edef68
* Added exceptions to sys::Waitable.Alan Conway2008-06-061-21/+12
| | | | | | | | Fixed client side deadlock involving client::Bounds. Fixed incorrect exception messages during connection shutdown. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@664114 13f79535-47bb-0310-9956-ffa450edef68
* Fixed intermittent leak of client::Connector thread.Alan Conway2008-05-261-1/+0
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@660320 13f79535-47bb-0310-9956-ffa450edef68
* qpid::SessionState: Added error checking for invalid frame sequences.Alan Conway2008-05-231-6/+7
| | | | | | | client: Fix client crash on error during connection shutdown. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@659538 13f79535-47bb-0310-9956-ffa450edef68
* Fix error handling for connection close during startup.Gordon Sim2008-05-041-1/+2
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@653248 13f79535-47bb-0310-9956-ffa450edef68