summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/client/ConnectionImpl.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Load client side plugins just before creating the first Connection.Andrew Stitcher2010-04-271-3/+8
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@938701 13f79535-47bb-0310-9956-ffa450edef68
* - Hold up tearing down client I/O threads until there are no moreAndrew Stitcher2010-04-211-1/+8
| | | | | | | connections active. - Don't create more client I/O threads than connections. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@936309 13f79535-47bb-0310-9956-ffa450edef68
* An alternative attempt at ensuring ConnectionImpl is not deleted before IO ↵Gordon Sim2010-04-171-27/+33
| | | | | | thread is finished with it. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@935275 13f79535-47bb-0310-9956-ffa450edef68
* QPID-2511: Altered shutdown sequence in connectors; after connect() has ↵Gordon Sim2010-04-151-7/+41
| | | | | | returned there will always now be a shutdown callback made and only at that point is it guaranteed that there will be no further io callbacks. ConnectionImpl consequently waits for this before allowing itself to be deleted. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@934503 13f79535-47bb-0310-9956-ffa450edef68
* Improved fix for to create client library Poller. Improved because itAndrew Stitcher2010-04-081-9/+7
| | | | | | is now created at first need rather than library load. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@931781 13f79535-47bb-0310-9956-ffa450edef68
* 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