Author: kwall Date: Tue Feb 10 16:15:08 2015 New Revision: 1658748 URL: http://svn.apache.org/r1658748 Log: merge from trunk
Added: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/CMakeModules/CheckSizeTNativeType.cmake - copied unchanged from r1658732, qpid/trunk/qpid/cpp/CMakeModules/CheckSizeTNativeType.cmake qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/tests/idle_timeout_tests.py - copied unchanged from r1658732, qpid/trunk/qpid/cpp/src/tests/idle_timeout_tests.py qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/SSLOptions.java - copied unchanged from r1658732, qpid/trunk/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/SSLOptions.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/TCPTransportProvider.java - copied unchanged from r1658732, qpid/trunk/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/TCPTransportProvider.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/GroupManagingGroupProvider.java - copied unchanged from r1658732, qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/GroupManagingGroupProvider.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/NonJavaKeyStoreTest.java - copied unchanged from r1658732, qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/NonJavaKeyStoreTest.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/NonJavaTrustStoreTest.java - copied unchanged from r1658732, qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/NonJavaTrustStoreTest.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/addGroupProvider.html - copied unchanged from r1658732, qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/addGroupProvider.html qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/common/ResourceWidget.html - copied unchanged from r1658732, qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/common/ResourceWidget.html qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/groupprovider/groupfile/ - copied from r1658732, qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/groupprovider/groupfile/ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/groupprovider/showGroupManagingGroupProvider.html - copied unchanged from r1658732, qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/groupprovider/showGroupManagingGroupProvider.html qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/FormWidgetMixin.js - copied unchanged from r1658732, qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/FormWidgetMixin.js qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/ResourceWidget.js - copied unchanged from r1658732, qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/ResourceWidget.js qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/groupprovider/GroupManagingGroupProvider.js - copied unchanged from r1658732, qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/groupprovider/GroupManagingGroupProvider.js qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/groupprovider/groupfile/ - copied from r1658732, qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/groupprovider/groupfile/ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/groupprovider/managedgroupprovider/ - copied from r1658732, qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/groupprovider/managedgroupprovider/ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/store/nonjavakeystore/ - copied from r1658732, qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/store/nonjavakeystore/ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/store/nonjavatruststore/ - copied from r1658732, qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/store/nonjavatruststore/ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/store/nonjavakeystore/ - copied from r1658732, qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/store/nonjavakeystore/ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/store/nonjavatruststore/ - copied from r1658732, qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/store/nonjavatruststore/ Removed: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/TCPTransportProvier.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/groupprovider/showFileGroupManager.html qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/groupprovider/FileGroupManager.js qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/systests/src/test/java/org/apache/qpid/test/unit/close/MessageRequeueTest.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/systests/src/test/java/org/apache/qpid/test/utils/QpidClientConnection.java Modified: qpid/branches/QPID-6262-JavaBrokerNIO/ (props changed) qpid/branches/QPID-6262-JavaBrokerNIO/qpid/ (props changed) qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/CMakeLists.txt qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/INSTALL qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/ (props changed) qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/CMakeLists.txt (contents, props changed) qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/config.h.cmake qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/InlineAllocator.h qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/NullSaslServer.cpp qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/Options.cpp qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/RangeSet.h qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/RefCounted.h qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/SessionId.h qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/amqp/MapEncoder.h qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/broker/ (props changed) qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/broker/LossyLvq.h qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/broker/QueueRegistry.h qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/broker/TopicKeyNode.h qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/broker/amqp/Connection.cpp qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/broker/amqp/Connection.h qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/broker/amqp/Filter.h qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/client/amqp0_10/AddressResolution.cpp qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/client/amqp0_10/IncomingMessages.cpp qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/client/amqp0_10/IncomingMessages.h qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/client/windows/SslConnector.cpp qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/messaging/amqp/ConnectionContext.cpp qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/messaging/amqp/ConnectionContext.h qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/messaging/amqp/DriverImpl.cpp qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/messaging/amqp/DriverImpl.h qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/messaging/amqp/Transport.h qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/messaging/amqp/windows/SslTransport.cpp qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/store/MessageStorePlugin.h qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/sys/FreeBSD/uuid.cpp qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/sys/Thread.h qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/sys/posix/AsynchIO.cpp qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/sys/posix/Thread.cpp qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/sys/posix/Time.cpp qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/sys/unordered_map.h qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/sys/windows/SslCredential.cpp qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/sys/windows/SslCredential.h qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/sys/windows/Thread.cpp qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/types/Variant.cpp qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/tests/ (props changed) qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/tests/CMakeLists.txt qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/tests/TimerTest.cpp qpid/branches/QPID-6262-JavaBrokerNIO/qpid/doc/book/src/java-broker/Java-Broker-Appendix-Operational-Logging-Messages.xml qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/ (props changed) qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/ConnectionFactoryImpl.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/ConnectionImpl.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/amqp-1-0-client-websocket/src/main/java/org/apache/qpid/amqp_1_0/client/websocket/WebSocketProvider.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/Connection.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/SSLUtil.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/TCPTransportProviderFactory.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/TransportProvider.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/pom.xml qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/BrokerOptions.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/ManagementConsoleMessages.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/ManagementConsole_logmessages.properties qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/BrokerModel.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredAutomatedAttribute.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredDerivedAttribute.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObject.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectAttribute.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/DerivedAttribute.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ManagedAttribute.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ManagedObject.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Port.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHostNode.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileBasedGroupProvider.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/port/AbstractPort.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/FileKeyStore.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/FileKeyStoreImpl.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/FileTrustStore.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/FileTrustStoreImpl.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/NonJavaKeyStore.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/NonJavaKeyStoreImpl.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/NonJavaTrustStore.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/NonJavaTrustStoreImpl.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/group/GroupProviderImpl.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/BrokerStoreUpgraderAndRecoverer.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/VirtualHostStoreUpgraderAndRecoverer.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/transport/TCPandSSLTransport.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/resources/initial-config.json qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/resources/system.properties qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/messages/ManagementConsoleMessagesTest.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/FileKeyStoreTest.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/FileTrustStoreTest.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/ACLFileAccessControlProvider.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQChannel.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/InternalTestProtocolSession.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/ConsumerTarget_1_0.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Message_1_0.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/SendingLink_1_0.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/pom.xml qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementConfiguration.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/ConfiguredObjectToMapConverter.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MetaDataServlet.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/addAccessControlProvider.html qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/addAuthenticationProvider.html qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/addBinding.html qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/addExchange.html qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/addPort.html qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/addPreferencesProvider.html qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/addQueue.html qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/addStore.html qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/addVirtualHostNodeAndVirtualHost.html qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/css/common.css qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/editBroker.html qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/editQueue.html qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/editVirtualHost.html qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/editVirtualHostNode.html qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/footer.html qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/grid/showColumnDefDialog.html qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/grid/showRowNumberLimitDialog.html qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/group/addGroupMember.html qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/group/showGroup.html qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/groupprovider/addGroup.html qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/index.html qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/metadata.js qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/AuthenticationProvider.js qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/GroupProvider.js qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/KeyStore.js qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/PreferencesProvider.js qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/TrustStore.js qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addAuthenticationProvider.js qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addGroupProvider.js qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addStore.js qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/group/Group.js qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/preferencesprovider/PreferencesProviderForm.js qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/store/filekeystore/add.js qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/store/filetruststore/add.js qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/login.html qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/logs/showLogFileDownloadDialog.html qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/preferencesprovider/preferencesProviderForm.html qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/showAuthProvider.html qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/showGroupProvider.html qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/showPreferences.html qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/showPreferencesProvider.html qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/store/filekeystore/add.html qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/store/filetruststore/add.html qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/main/java/resources/store/filetruststore/show.html qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/servlet/rest/ConfiguredObjectToMapConverterTest.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagedObjectRegistry.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/QpidSslRMIServerSocketFactory.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker/bin/qpid-server.bat qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker/src/main/java/org/apache/qpid/server/Main.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker/src/test/java/org/apache/qpid/server/MainTest.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnection.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnectionDelegate_0_10.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_8.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/client/src/main/java/org/apache/qpid/client/BasicMessageConsumer.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/client/src/test/java/org/apache/qpid/client/MockAMQConnection.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/common/src/main/java/org/apache/qpid/codec/ServerDecoder.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/common/src/main/java/org/apache/qpid/common/QpidProperties.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/common/src/main/java/org/apache/qpid/configuration/ClientProperties.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/common/src/main/java/org/apache/qpid/configuration/CommonProperties.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/common/src/main/java/org/apache/qpid/transport/Connection.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/common/src/main/java/org/apache/qpid/transport/NetworkTransportConfiguration.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/common/src/main/java/org/apache/qpid/transport/network/io/IoSender.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/common/src/main/java/org/apache/qpid/transport/network/io/NonBlockingConnection.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/common/src/main/java/org/apache/qpid/transport/network/io/NonBlockingNetworkTransport.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/common/src/main/java/org/apache/qpid/transport/network/io/NonBlockingSenderReceiver.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/common/src/main/java/org/apache/qpid/transport/network/security/ssl/SSLReceiver.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/common/src/main/java/org/apache/qpid/transport/network/security/ssl/SSLSender.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/common/src/main/java/org/apache/qpid/transport/network/security/ssl/SSLUtil.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/pom.xml qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/systests/etc/config-systests.json qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/systests/src/test/java/org/apache/qpid/client/session/QueueDeclareTest.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/systests/src/test/java/org/apache/qpid/client/ssl/SSLTest.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/systests/src/test/java/org/apache/qpid/server/logging/ChannelLoggingTest.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/systests/src/test/java/org/apache/qpid/server/security/auth/manager/ExternalAuthenticationTest.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/systests/src/test/java/org/apache/qpid/systest/management/jmx/ManagementLoggingTest.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/AccessControlProviderRestTest.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/KeyStoreRestTest.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/TrustStoreRestTest.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/acl/BrokerACLTest.java qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/test-profiles/Java010Excludes qpid/branches/QPID-6262-JavaBrokerNIO/qpid/python/ (props changed) qpid/branches/QPID-6262-JavaBrokerNIO/qpid/python/qpid/messaging/driver.py qpid/branches/QPID-6262-JavaBrokerNIO/qpid/tools/setup.py Propchange: qpid/branches/QPID-6262-JavaBrokerNIO/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Tue Feb 10 16:15:08 2015 @@ -3,4 +3,4 @@ /qpid/branches/java-broker-bdb-ha2:1576683-1583556 /qpid/branches/java-network-refactor:805429-825319 /qpid/branches/mcpierce-QPID-4719:1477004-1477093 -/qpid/trunk:1643238-1655056 +/qpid/trunk:1643238-1658732 Propchange: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Tue Feb 10 16:15:08 2015 @@ -6,4 +6,4 @@ /qpid/branches/mcpierce-QPID-4719/qpid:1477004-1477093 /qpid/branches/qpid-2935/qpid:1061302-1072333 /qpid/branches/qpid-3346/qpid:1144319-1179855 -/qpid/trunk/qpid:1643238-1655056 +/qpid/trunk/qpid:1643238-1658732 Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/CMakeLists.txt URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/CMakeLists.txt?rev=1658748&r1=1658747&r2=1658748&view=diff ============================================================================== --- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/CMakeLists.txt (original) +++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/CMakeLists.txt Tue Feb 10 16:15:08 2015 @@ -182,6 +182,11 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL SunPr set (HIDE_SYMBOL_FLAGS "") endif (CMAKE_CXX_COMPILER_ID STREQUAL SunPro) +# XL is IBM XL C/C++ +if (CMAKE_CXX_COMPILER_ID MATCHES XL) + set (COMPILER_FLAGS "-qtls -qrtti") +endif (CMAKE_CXX_COMPILER_ID MATCHES XL) + if (CMAKE_SYSTEM_NAME STREQUAL Windows) # Allow MSVC user to select 'WinXP-SP3/Windows Server 2003' as build target version set (win32_winnt_default OFF) Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/INSTALL URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/INSTALL?rev=1658748&r1=1658747&r2=1658748&view=diff ============================================================================== --- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/INSTALL (original) +++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/INSTALL Tue Feb 10 16:15:08 2015 @@ -91,7 +91,7 @@ Or if you have only have a command line 2.1 Building as C++11 (Experimental) ==================================== -Currently the Qpoid project uses C++ that conforms to the C++03 standard, as currently +Currently the Qpid project uses C++ that conforms to the C++03 standard, as currently this is the C++ standard that is supported the most widely, so any new code must also compile as C++03. As an experiment (and to support a few extra platforms) the Qpid code will also now build as C++11. @@ -141,6 +141,23 @@ If you want to use the ports version of Which will allow cmake to find libraries installed in /usr/local (which is where cyrus-sasl gets installed by ports). +2.4 Building on AIX +=================== +Qpid has been tested on AIX 7.1 with XL C++ 13.1 and Boost 1.55.0. The +thread-using variant of the compiler must be used but it isn't the default +picked up by cmake. Thus, the compiler must be specified at cmake time. +For example (assuming PATH includes the compiler binaries): + + # CXX=xlC_r CC=cc_r cmake .. + +Warnings from Boost header files are expected and can be ignored. + +It is normal to see (lots of) multiply-defined symbol warnings when linking +the shared libraries built as part of Qpid. + +The mktemp package must be installed separately in order to execute the +Qpid test suite. + 3. Building a Repository Working Copy ===================================== To get the source code from the subversion repository (trunk) do: Propchange: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Tue Feb 10 16:15:08 2015 @@ -6,4 +6,4 @@ /qpid/branches/java-network-refactor/qpid/cpp/src:805429-825319 /qpid/branches/qpid-2935/qpid/cpp/src:1061302-1072333 /qpid/branches/qpid-3346/qpid/cpp/src:1144319-1179855 -/qpid/trunk/qpid/cpp/src:1643238-1655056 +/qpid/trunk/qpid/cpp/src:1643238-1658732 Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/CMakeLists.txt URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/CMakeLists.txt?rev=1658748&r1=1658747&r2=1658748&view=diff ============================================================================== --- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/CMakeLists.txt (original) +++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/CMakeLists.txt Tue Feb 10 16:15:08 2015 @@ -42,6 +42,7 @@ include(CheckIncludeFiles) include(CheckIncludeFileCXX) include(CheckLibraryExists) include(CheckSymbolExists) +include(CheckSizeTNativeType) find_package(PkgConfig) find_package(Ruby) @@ -350,6 +351,8 @@ if (NOT CMAKE_SYSTEM_NAME STREQUAL Windo mark_as_advanced(QPID_POLLER) endif (NOT CMAKE_SYSTEM_NAME STREQUAL Windows) +check_size_t_native_type (QPID_SIZE_T_NATIVE) + option(BUILD_SASL "Build with Cyrus SASL support" ${SASL_FOUND}) if (BUILD_SASL) if (NOT SASL_FOUND) @@ -684,6 +687,12 @@ else (CMAKE_SYSTEM_NAME STREQUAL Windows ) endif (CMAKE_SYSTEM_NAME STREQUAL SunOS) + if (CMAKE_SYSTEM_NAME STREQUAL AIX) + set (qpid_system_module + qpid/sys/aix/SystemInfo.cpp + ) + endif (CMAKE_SYSTEM_NAME STREQUAL AIX) + if (CMAKE_CXX_COMPILER_ID STREQUAL SunPro) # -lmalloc needed for mallinfo. set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lmalloc") @@ -1145,6 +1154,9 @@ set_target_properties (qpidbroker PROPER VERSION ${qpidbroker_version} SOVERSION ${qpidbroker_version_major} COMPILE_DEFINITIONS _IN_QPID_BROKER) +if (CMAKE_CXX_COMPILER_ID MATCHES XL) + set_target_properties (qpidbroker PROPERTIES LINK_FLAGS -Wl,-bbigtoc) +endif (CMAKE_CXX_COMPILER_ID MATCHES XL) if (MSVC) set_target_properties (qpidbroker PROPERTIES COMPILE_FLAGS /wd4290) Propchange: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/CMakeLists.txt ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Tue Feb 10 16:15:08 2015 @@ -7,4 +7,4 @@ /qpid/branches/qpid-2393/qpid/cpp/src/CMakeLists.txt:1375790-1376954 /qpid/branches/qpid-2935/qpid/cpp/src/CMakeLists.txt:1061302-1072333 /qpid/branches/qpid-3346/qpid/cpp/src/CMakeLists.txt:1144319-1179855 -/qpid/trunk/qpid/cpp/src/CMakeLists.txt:1643238-1655056 +/qpid/trunk/qpid/cpp/src/CMakeLists.txt:1643238-1658732 Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/config.h.cmake URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/config.h.cmake?rev=1658748&r1=1658747&r2=1658748&view=diff ============================================================================== --- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/config.h.cmake (original) +++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/config.h.cmake Tue Feb 10 16:15:08 2015 @@ -56,6 +56,7 @@ #cmakedefine HAVE_SYS_SDT_H ${HAVE_SYS_SDT_H} #cmakedefine HAVE_LOG_AUTHPRIV #cmakedefine HAVE_LOG_FTP +#cmakedefine QPID_SIZE_T_NATIVE #cmakedefine HAVE_PROTON_TRACER #cmakedefine USE_PROTON_TRANSPORT_CONDITION #cmakedefine HAVE_PROTON_EVENTS Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/InlineAllocator.h URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/InlineAllocator.h?rev=1658748&r1=1658747&r2=1658748&view=diff ============================================================================== --- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/InlineAllocator.h (original) +++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/InlineAllocator.h Tue Feb 10 16:15:08 2015 @@ -47,7 +47,7 @@ class InlineAllocator : public BaseAlloc InlineAllocator() : allocated(false) {} InlineAllocator(const InlineAllocator& x) : BaseAllocator(x), allocated(false) {} - pointer allocate(size_type n) { + pointer allocate(size_type n, std::allocator<void>::const_pointer = 0) { if (n <= Max && !allocated) { allocated=true; return reinterpret_cast<value_type*>(address()); Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/NullSaslServer.cpp URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/NullSaslServer.cpp?rev=1658748&r1=1658747&r2=1658748&view=diff ============================================================================== --- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/NullSaslServer.cpp (original) +++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/NullSaslServer.cpp Tue Feb 10 16:15:08 2015 @@ -66,7 +66,6 @@ NullSaslServer::Status NullSaslServer::s NullSaslServer::Status NullSaslServer::step(const std::string* /*response*/, std::string& /*challenge*/) { - assert(false); return FAIL; } std::string NullSaslServer::getMechanisms() Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/Options.cpp URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/Options.cpp?rev=1658748&r1=1658747&r2=1658748&view=diff ============================================================================== --- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/Options.cpp (original) +++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/Options.cpp Tue Feb 10 16:15:08 2015 @@ -16,6 +16,7 @@ * */ +#include "config.h" #include "qpid/Options.h" #include "qpid/OptionsTemplates.h" #include "qpid/Exception.h" @@ -145,6 +146,9 @@ template QPID_COMMON_EXTERN po::value_se template QPID_COMMON_EXTERN po::value_semantic* create_value(uint16_t& val, const std::string& arg); template QPID_COMMON_EXTERN po::value_semantic* create_value(uint32_t& val, const std::string& arg); template QPID_COMMON_EXTERN po::value_semantic* create_value(uint64_t& val, const std::string& arg); +#ifdef QPID_SIZE_T_NATIVE +template QPID_COMMON_EXTERN po::value_semantic* create_value(size_t& val, const std::string& arg); +#endif template QPID_COMMON_EXTERN po::value_semantic* create_value(double& val, const std::string& arg); template QPID_COMMON_EXTERN po::value_semantic* create_value(string& val, const std::string& arg); Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/RangeSet.h URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/RangeSet.h?rev=1658748&r1=1658747&r2=1658748&view=diff ============================================================================== --- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/RangeSet.h (original) +++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/RangeSet.h Tue Feb 10 16:15:08 2015 @@ -96,9 +96,9 @@ class Range { */ template <class T> class RangeSet - : boost::additive1<RangeSet<T>, - boost::additive2<RangeSet<T>, Range<T>, - boost::additive2<RangeSet<T>, T> > > + : private boost::additive1<RangeSet<T>, + boost::additive2<RangeSet<T>, Range<T>, + boost::additive2<RangeSet<T>, T> > > { typedef InlineVector<Range<T>, 3> Ranges; // TODO aconway 2008-04-21: what's the optimial inlined value? Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/RefCounted.h URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/RefCounted.h?rev=1658748&r1=1658747&r2=1658748&view=diff ============================================================================== --- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/RefCounted.h (original) +++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/RefCounted.h Tue Feb 10 16:15:08 2015 @@ -33,7 +33,7 @@ namespace qpid { * to the class that has mixed this in not the class itself (as that would sidestep * the reference counting) */ -class RefCounted : boost::noncopyable { +class RefCounted : private boost::noncopyable { mutable boost::detail::atomic_count count; public: Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/SessionId.h URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/SessionId.h?rev=1658748&r1=1658747&r2=1658748&view=diff ============================================================================== --- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/SessionId.h (original) +++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/SessionId.h Tue Feb 10 16:15:08 2015 @@ -39,7 +39,7 @@ namespace qpid { * The name must be unique among sessions with the same authentication * principal. */ -class SessionId : boost::totally_ordered1<SessionId> { +class SessionId : private boost::totally_ordered1<SessionId> { std::string userId; std::string name; public: Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/amqp/MapEncoder.h URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/amqp/MapEncoder.h?rev=1658748&r1=1658747&r2=1658748&view=diff ============================================================================== --- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/amqp/MapEncoder.h (original) +++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/amqp/MapEncoder.h Tue Feb 10 16:15:08 2015 @@ -31,7 +31,7 @@ struct Descriptor; /** * Encode map like data */ -class MapEncoder : public MapHandler, Encoder +class MapEncoder : public MapHandler, private Encoder { public: MapEncoder(char* data, size_t size); Propchange: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/broker/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Tue Feb 10 16:15:08 2015 @@ -7,4 +7,4 @@ /qpid/branches/qpid-2935/qpid/cpp/src/qpid/broker:1061302-1072333 /qpid/branches/qpid-3346/qpid/cpp/src/qpid/broker:1144319-1179855 /qpid/branches/qpid-3890/qpid/cpp/src/qpid/broker:1299027-1303795 -/qpid/trunk/qpid/cpp/src/qpid/broker:1643238-1655056 +/qpid/trunk/qpid/cpp/src/qpid/broker:1643238-1658732 Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/broker/LossyLvq.h URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/broker/LossyLvq.h?rev=1658748&r1=1658747&r2=1658748&view=diff ============================================================================== --- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/broker/LossyLvq.h (original) +++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/broker/LossyLvq.h Tue Feb 10 16:15:08 2015 @@ -28,6 +28,12 @@ namespace qpid { namespace broker { class MessageMap; +// Disable inherited-by-dominance warning on MSVC. We know. It's ok. +#ifdef _MSC_VER +# pragma warning(push) +# pragma warning(disable : 4250) +#endif + /** * Combination of LossyQueue and Lvq behaviours. */ @@ -36,6 +42,11 @@ class LossyLvq : public Lvq, public Loss public: LossyLvq(const std::string&, std::auto_ptr<MessageMap>, const QueueSettings&, MessageStore* const, management::Manageable*, Broker*); }; + +#ifdef _MSC_VER +# pragma warning(pop) +#endif + }} // namespace qpid::broker #endif /*!QPID_BROKER_LOSSYLVQ_H*/ Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/broker/QueueRegistry.h URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/broker/QueueRegistry.h?rev=1658748&r1=1658747&r2=1658748&view=diff ============================================================================== --- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/broker/QueueRegistry.h (original) +++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/broker/QueueRegistry.h Tue Feb 10 16:15:08 2015 @@ -44,7 +44,7 @@ class OwnershipToken; * are deleted when and only when they are no longer in use. * */ -class QueueRegistry : QueueFactory { +class QueueRegistry : private QueueFactory { public: QPID_BROKER_EXTERN QueueRegistry(Broker* b = 0); QPID_BROKER_EXTERN ~QueueRegistry(); Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/broker/TopicKeyNode.h URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/broker/TopicKeyNode.h?rev=1658748&r1=1658747&r2=1658748&view=diff ============================================================================== --- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/broker/TopicKeyNode.h (original) +++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/broker/TopicKeyNode.h Tue Feb 10 16:15:08 2015 @@ -166,7 +166,7 @@ class QPID_BROKER_CLASS_EXTERN TopicKeyN bool isHash; // children - typedef std::map<const std::string, typename TopicKeyNode::shared_ptr> ChildMap; + typedef std::map<std::string, typename TopicKeyNode::shared_ptr> ChildMap; ChildMap childTokens; typename TopicKeyNode::shared_ptr starChild; // "*" subtree typename TopicKeyNode::shared_ptr hashChild; // "#" subtree Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/broker/amqp/Connection.cpp URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/broker/amqp/Connection.cpp?rev=1658748&r1=1658747&r2=1658748&view=diff ============================================================================== --- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/broker/amqp/Connection.cpp (original) +++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/broker/amqp/Connection.cpp Tue Feb 10 16:15:08 2015 @@ -121,7 +121,7 @@ Connection::Connection(qpid::sys::Output connection(pn_connection()), transport(pn_transport()), collector(0), - out(o), id(i), haveOutput(true), closeInitiated(false), closeRequested(false) + out(o), id(i), haveOutput(true), closeInitiated(false), closeRequested(false), ioRequested(false) { #ifdef HAVE_PROTON_EVENTS collector = pn_collector(); @@ -157,6 +157,7 @@ Connection::Connection(qpid::sys::Output void Connection::requestIO() { + ioRequested = true; out.activateOutput(); } @@ -179,13 +180,24 @@ size_t Connection::decode(const char* bu { QPID_LOG(trace, id << " decode(" << size << ")"); if (size == 0) return 0; - //TODO: Fix pn_engine_input() to take const buffer + ssize_t n = pn_transport_input(transport, const_cast<char*>(buffer), size); if (n > 0 || n == PN_EOS) { - //If engine returns EOS, have no way of knowing how many bytes - //it processed, but can assume none need to be reprocessed so - //consider them all read: - if (n == PN_EOS) n = size; + // PN_EOS either means we received a Close (which also means we've + // consumed all the input), OR some Very Bad Thing happened and this + // connection is toast. + if (n == PN_EOS) + { + std::string error; + if (checkTransportError(error)) { + // "He's dead, Jim." + QPID_LOG_CAT(error, network, id << " connection failed: " << error); + out.abort(); + return 0; + } else { + n = size; // assume all consumed + } + } QPID_LOG_CAT(debug, network, id << " decoded " << n << " bytes from " << size); try { process(); @@ -209,7 +221,11 @@ size_t Connection::decode(const char* bu } return n; } else if (n == PN_ERR) { - throw Exception(qpid::amqp::error_conditions::DECODE_ERROR, QPID_MSG("Error on input: " << getError())); + std::string error; + checkTransportError(error); + QPID_LOG_CAT(error, network, id << " connection error: " << error); + out.abort(); + return 0; } else { return 0; } @@ -224,8 +240,21 @@ size_t Connection::encode(char* buffer, QPID_LOG_CAT(debug, network, id << " encoded " << n << " bytes from " << size) haveOutput = true; return n; + } else if (n == PN_EOS) { + haveOutput = false; + // Normal close, or error? + std::string error; + if (checkTransportError(error)) { + QPID_LOG_CAT(error, network, id << " connection failed: " << error); + out.abort(); + } + return 0; } else if (n == PN_ERR) { - throw Exception(qpid::amqp::error_conditions::INTERNAL_ERROR, QPID_MSG("Error on output: " << getError())); + std::string error; + checkTransportError(error); + QPID_LOG_CAT(error, network, id << " connection error: " << error); + out.abort(); + return 0; } else { haveOutput = false; return 0; @@ -291,6 +320,7 @@ bool Connection::canEncode() } else { QPID_LOG(info, "Connection " << id << " has been closed locally"); } + if (ioRequested.valueCompareAndSwap(true, false)) haveOutput = true; pn_transport_tick(transport, qpid::sys::Duration::FromEpoch() / qpid::sys::TIME_MSEC); QPID_LOG_CAT(trace, network, id << " canEncode(): " << haveOutput) return haveOutput; @@ -303,8 +333,22 @@ void Connection::open() pn_connection_set_container(connection, getBroker().getFederationTag().c_str()); uint32_t timeout = pn_transport_get_remote_idle_timeout(transport); if (timeout) { - ticker = boost::intrusive_ptr<qpid::sys::TimerTask>(new ConnectionTickerTask(timeout, getBroker().getTimer(), *this)); - pn_transport_set_idle_timeout(transport, timeout); + // if idle generate empty frames at 1/2 the timeout interval as keepalives: + ticker = boost::intrusive_ptr<qpid::sys::TimerTask>(new ConnectionTickerTask((timeout+1)/2, + getBroker().getTimer(), + *this)); + getBroker().getTimer().add(ticker); + + // Note: in version 0-10 of the protocol, idle timeout applies to both + // ends. AMQP 1.0 changes that - it's now asymmetric: each end can + // configure/disable it independently. For backward compatibility, by + // default mimic the old behavior and set our local timeout. + // Use 2x the remote's timeout, as per the spec the remote should + // advertise 1/2 its actual timeout threshold + pn_transport_set_idle_timeout(transport, timeout * 2); + QPID_LOG_CAT(debug, network, id << " AMQP 1.0 idle-timeout set:" + << " local=" << pn_transport_get_idle_timeout(transport) + << " remote=" << pn_transport_get_remote_idle_timeout(transport)); } pn_connection_open(connection); @@ -585,4 +629,22 @@ void Connection::doDeliveryUpdated(pn_de } } +// check for failures of the transport: +bool Connection::checkTransportError(std::string& text) +{ + std::stringstream info; + +#ifdef USE_PROTON_TRANSPORT_CONDITION + pn_condition_t* tcondition = pn_transport_condition(transport); + if (pn_condition_is_set(tcondition)) + info << "transport error: " << pn_condition_get_name(tcondition) << ", " << pn_condition_get_description(tcondition); +#else + pn_error_t* terror = pn_transport_error(transport); + if (terror) info << "transport error " << pn_error_text(terror) << " [" << terror << "]"; +#endif + + text = info.str(); + return !text.empty(); +} + }}} // namespace qpid::broker::amqp Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/broker/amqp/Connection.h URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/broker/amqp/Connection.h?rev=1658748&r1=1658747&r2=1658748&view=diff ============================================================================== --- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/broker/amqp/Connection.h (original) +++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/broker/amqp/Connection.h Tue Feb 10 16:15:08 2015 @@ -24,6 +24,7 @@ #include "qpid/sys/ConnectionCodec.h" #include "qpid/broker/amqp/BrokerContext.h" #include "qpid/broker/amqp/ManagedConnection.h" +#include "qpid/sys/AtomicValue.h" #include <map> #include <boost/intrusive_ptr.hpp> #include <boost/shared_ptr.hpp> @@ -80,6 +81,7 @@ class Connection : public BrokerContext, bool closeInitiated; bool closeRequested; boost::intrusive_ptr<sys::TimerTask> ticker; + qpid::sys::AtomicValue<bool> ioRequested; virtual void process(); void doOutput(size_t); @@ -92,6 +94,8 @@ class Connection : public BrokerContext, void closedByManagement(); private: + bool checkTransportError(std::string&); + // handle Proton engine events void doConnectionRemoteOpen(); void doConnectionRemoteClose(); @@ -100,7 +104,6 @@ class Connection : public BrokerContext, void doLinkRemoteOpen(pn_link_t *link); void doLinkRemoteClose(pn_link_t *link); void doDeliveryUpdated(pn_delivery_t *delivery); - }; }}} // namespace qpid::broker::amqp Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/broker/amqp/Filter.h URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/broker/amqp/Filter.h?rev=1658748&r1=1658747&r2=1658748&view=diff ============================================================================== --- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/broker/amqp/Filter.h (original) +++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/broker/amqp/Filter.h Tue Feb 10 16:15:08 2015 @@ -37,7 +37,7 @@ struct QueueSettings; namespace amqp { class Outgoing; -class Filter : qpid::amqp::MapReader +class Filter : private qpid::amqp::MapReader { public: Filter(); Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/client/amqp0_10/AddressResolution.cpp URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/client/amqp0_10/AddressResolution.cpp?rev=1658748&r1=1658747&r2=1658748&view=diff ============================================================================== --- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/client/amqp0_10/AddressResolution.cpp (original) +++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/client/amqp0_10/AddressResolution.cpp Tue Feb 10 16:15:08 2015 @@ -548,8 +548,8 @@ Subscription::Subscription(const Address if ((Opt(address)/LINK).hasKey(TIMEOUT)) { const Variant* timeout = (Opt(address)/LINK/TIMEOUT).value; if (timeout->asUint32()) queueOptions.setInt("qpid.auto_delete_timeout", timeout->asUint32()); - } else if (durable && !reliable && !(Opt(address)/LINK/X_DECLARE).hasKey(AUTO_DELETE)) { - //if durable but not reliable, and auto-delete not + } else if (durable && !AddressResolution::is_reliable(address) && !(Opt(address)/LINK/X_DECLARE).hasKey(AUTO_DELETE)) { + //if durable, not explicitly reliable, and auto-delete not //explicitly set, then set a non-zero default for the //autodelete timeout queueOptions.setInt("qpid.auto_delete_timeout", 2*60); Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/client/amqp0_10/IncomingMessages.cpp URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/client/amqp0_10/IncomingMessages.cpp?rev=1658748&r1=1658747&r2=1658748&view=diff ============================================================================== --- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/client/amqp0_10/IncomingMessages.cpp (original) +++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/client/amqp0_10/IncomingMessages.cpp Tue Feb 10 16:15:08 2015 @@ -164,8 +164,13 @@ bool IncomingMessages::get(Handler& hand ScopedRelease release(inUse, lock); sys::Mutex::ScopedUnlock l(lock); //wait for suitable new message to arrive - if (process(&handler, get_duration(timeout, deadline))) { + switch (process(&handler, get_duration(timeout, deadline))) { + case OK: return true; + case CLOSED: + return false; + case EMPTY: + break; } } if (handler.isClosed()) throw qpid::messaging::ReceiverError("Receiver has been closed"); @@ -233,7 +238,7 @@ void IncomingMessages::releaseAll() } //then pump out any available messages from incoming queue... GetAny handler; - while (process(&handler, 0)) ; + while (process(&handler, 0) == OK) ; //now release all messages sys::Mutex::ScopedLock l(lock); acceptTracker.release(session); @@ -242,7 +247,7 @@ void IncomingMessages::releaseAll() void IncomingMessages::releasePending(const std::string& destination) { //first pump all available messages from incoming to received... - while (process(0, 0)) ; + while (process(0, 0) == OK) ; //now remove all messages for this destination from received list, recording their ids... sys::Mutex::ScopedLock l(lock); @@ -269,7 +274,7 @@ bool IncomingMessages::pop(FrameSet::sha * that are not accepted by the handler are pushed onto received queue * for later retrieval. */ -bool IncomingMessages::process(Handler* handler, qpid::sys::Duration duration) +IncomingMessages::ProcessState IncomingMessages::process(Handler* handler, qpid::sys::Duration duration) { AbsTime deadline(AbsTime::now(), duration); FrameSet::shared_ptr content; @@ -282,7 +287,7 @@ bool IncomingMessages::process(Handler* } else if (handler && handler->accept(transfer)) { QPID_LOG(debug, "Delivered " << *content->getMethod() << " " << *content->getHeaders()); - return true; + return OK; } else { //received message for another destination, keep for later QPID_LOG(debug, "Pushed " << *content->getMethod() << " to received queue"); @@ -295,8 +300,8 @@ bool IncomingMessages::process(Handler* } } } - catch (const qpid::ClosedException&) {} // Just return false if queue closed. - return false; + catch (const qpid::ClosedException&) { return CLOSED; } + return EMPTY; } bool IncomingMessages::wait(qpid::sys::Duration duration) @@ -331,7 +336,7 @@ uint32_t IncomingMessages::pendingAccept uint32_t IncomingMessages::available() { //first pump all available messages from incoming to received... - while (process(0, 0)) {} + while (process(0, 0) == OK) {} //return the count of received messages sys::Mutex::ScopedLock l(lock); return received.size(); @@ -340,7 +345,7 @@ uint32_t IncomingMessages::available() uint32_t IncomingMessages::available(const std::string& destination) { //first pump all available messages from incoming to received... - while (process(0, 0)) {} + while (process(0, 0) == OK) {} //count all messages for this destination from received list sys::Mutex::ScopedLock l(lock); Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/client/amqp0_10/IncomingMessages.h URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/client/amqp0_10/IncomingMessages.h?rev=1658748&r1=1658747&r2=1658748&view=diff ============================================================================== --- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/client/amqp0_10/IncomingMessages.h (original) +++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/client/amqp0_10/IncomingMessages.h Tue Feb 10 16:15:08 2015 @@ -87,6 +87,7 @@ class IncomingMessages uint32_t available(const std::string& destination); private: typedef std::deque<FrameSetPtr> FrameSetQueue; + enum ProcessState {EMPTY=0,OK=1,CLOSED=2}; sys::Monitor lock; qpid::client::AsyncSession session; @@ -95,7 +96,7 @@ class IncomingMessages FrameSetQueue received; AcceptTracker acceptTracker; - bool process(Handler*, qpid::sys::Duration); + ProcessState process(Handler*, qpid::sys::Duration); bool wait(qpid::sys::Duration); bool pop(FrameSetPtr&, qpid::sys::Duration); Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/client/windows/SslConnector.cpp URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/client/windows/SslConnector.cpp?rev=1658748&r1=1658747&r2=1658748&view=diff ============================================================================== --- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/client/windows/SslConnector.cpp (original) +++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/client/windows/SslConnector.cpp Tue Feb 10 16:15:08 2015 @@ -115,7 +115,9 @@ SslConnector::SslConnector(boost::shared ConnectionImpl* cimpl) : TCPConnector(p, ver, settings, cimpl), shim(0), poller(p) { - + if (settings.sslIgnoreHostnameVerificationFailure) { + sslCredential.ignoreHostnameVerificationFailure(); + } const std::string& name = (settings.sslCertName != "") ? settings.sslCertName : qpid::sys::ssl::SslOptions::global.certName; certLoaded = sslCredential.load(name); Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/messaging/amqp/ConnectionContext.cpp URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/messaging/amqp/ConnectionContext.cpp?rev=1658748&r1=1658747&r2=1658748&view=diff ============================================================================== --- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/messaging/amqp/ConnectionContext.cpp (original) +++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/messaging/amqp/ConnectionContext.cpp Tue Feb 10 16:15:08 2015 @@ -39,6 +39,7 @@ #include "qpid/sys/SecurityLayer.h" #include "qpid/sys/SystemInfo.h" #include "qpid/sys/Time.h" +#include "qpid/sys/Timer.h" #include "qpid/sys/urlAdd.h" #include "config.h" #include <boost/lexical_cast.hpp> @@ -95,6 +96,27 @@ std::string get_error(pn_connection_t* c } #endif +class ConnectionTickerTask : public qpid::sys::TimerTask +{ + qpid::sys::Timer& timer; + ConnectionContext& connection; + public: + ConnectionTickerTask(const qpid::sys::Duration& interval, qpid::sys::Timer& t, ConnectionContext& c) : + TimerTask(interval, "ConnectionTicker"), + timer(t), + connection(c) + {} + + void fire() { + QPID_LOG(debug, "ConnectionTickerTask fired"); + // Setup next firing + setupNextFire(); + timer.add(this); + + // Send Ticker + connection.activateOutput(); + } +}; } void ConnectionContext::trace(const char* message) const @@ -118,23 +140,15 @@ ConnectionContext::ConnectionContext(con // Concatenate all known URLs into a single URL, get rid of duplicate addresses. sys::urlAddStrings(fullUrl, urls.begin(), urls.end(), protocol.empty() ? qpid::Address::TCP : protocol); - if (pn_transport_bind(engine, connection)) { - //error - } if (identifier.empty()) { identifier = qpid::types::Uuid(true).str(); } - pn_connection_set_container(connection, identifier.c_str()); - bool enableTrace(false); - QPID_LOG_TEST_CAT(trace, protocol, enableTrace); - if (enableTrace) { - pn_transport_trace(engine, PN_TRACE_FRM); - set_tracer(engine, this); - } + configureConnection(); } ConnectionContext::~ConnectionContext() { + if (ticker) ticker->cancel(); close(); sessions.clear(); pn_transport_free(engine); @@ -218,6 +232,10 @@ void ConnectionContext::close() lock.wait(); } } + if (ticker) { + ticker->cancel(); + ticker.reset(); + } } bool ConnectionContext::fetch(boost::shared_ptr<SessionContext> ssn, boost::shared_ptr<ReceiverContext> lnk, qpid::messaging::Message& message, qpid::messaging::Duration timeout) @@ -498,7 +516,7 @@ uint32_t ConnectionContext::getUnsettled void ConnectionContext::activateOutput() { qpid::sys::ScopedLock<qpid::sys::Monitor> l(lock); - wakeupDriver(); + if (state == CONNECTED) wakeupDriver(); } /** * Expects lock to be held by caller @@ -530,14 +548,11 @@ void ConnectionContext::reset() engine = pn_transport(); connection = pn_connection(); - pn_connection_set_container(connection, identifier.c_str()); - bool enableTrace(false); - QPID_LOG_TEST_CAT(trace, protocol, enableTrace); - if (enableTrace) pn_transport_trace(engine, PN_TRACE_FRM); + configureConnection(); + for (SessionMap::iterator i = sessions.begin(); i != sessions.end(); ++i) { i->second->reset(connection); } - pn_transport_bind(engine, connection); } void ConnectionContext::check() { @@ -758,16 +773,31 @@ std::size_t ConnectionContext::decodePla //TODO: Fix pn_engine_input() to take const buffer ssize_t n = pn_transport_input(engine, const_cast<char*>(buffer), size); if (n > 0 || n == PN_EOS) { - //If engine returns EOS, have no way of knowing how many bytes - //it processed, but can assume none need to be reprocessed so - //consider them all read: - if (n == PN_EOS) n = size; + // PN_EOS either means we received a Close (which also means we've + // consumed all the input), OR some Very Bad Thing happened and this + // connection is toast. + if (n == PN_EOS) + { + std::string error; + if (checkTransportError(error)) { + // "He's dead, Jim." + QPID_LOG_CAT(error, network, id << " connection failed: " << error); + transport->abort(); + return 0; + } else { + n = size; // assume all consumed + } + } QPID_LOG_CAT(debug, network, id << " decoded " << n << " bytes from " << size) - pn_transport_tick(engine, 0); + pn_transport_tick(engine, qpid::sys::Duration::FromEpoch() / qpid::sys::TIME_MSEC); lock.notifyAll(); return n; } else if (n == PN_ERR) { - throw MessagingException(QPID_MSG("Error on input: " << getError())); + std::string error; + checkTransportError(error); + QPID_LOG_CAT(error, network, id << " connection error: " << error); + transport->abort(); + return 0; } else { return 0; } @@ -792,10 +822,20 @@ std::size_t ConnectionContext::encodePla if (notifyOnWrite) lock.notifyAll(); return n; } else if (n == PN_ERR) { - throw MessagingException(QPID_MSG("Error on output: " << getError())); + std::string error; + checkTransportError(error); + QPID_LOG_CAT(error, network, id << " connection error: " << error); + transport->abort(); + return 0; } else if (n == PN_EOS) { haveOutput = false; - return 0;//Is this right? + // Normal close, or error? + std::string error; + if (checkTransportError(error)) { + QPID_LOG_CAT(error, network, id << " connection failed: " << error); + transport->abort(); + } + return 0; } else { haveOutput = false; return 0; @@ -804,6 +844,7 @@ std::size_t ConnectionContext::encodePla bool ConnectionContext::canEncodePlain() { qpid::sys::ScopedLock<qpid::sys::Monitor> l(lock); + pn_transport_tick(engine, qpid::sys::Duration::FromEpoch() / qpid::sys::TIME_MSEC); return haveOutput && state == CONNECTED; } void ConnectionContext::closed() @@ -1061,7 +1102,6 @@ bool ConnectionContext::tryOpenAddr(cons } QPID_LOG(debug, id << " Opening..."); - setProperties(); pn_connection_open(connection); wakeupDriver(); //want to write while ((pn_connection_state(connection) & PN_REMOTE_UNINIT) && @@ -1071,6 +1111,25 @@ bool ConnectionContext::tryOpenAddr(cons if (!(pn_connection_state(connection) & PN_REMOTE_ACTIVE)) { throw qpid::messaging::ConnectionError("Failed to open connection"); } + + // Connection open - check for idle timeout from the remote and start a + // periodic tick to monitor for idle connections + pn_timestamp_t remote = pn_transport_get_remote_idle_timeout(engine); + pn_timestamp_t local = pn_transport_get_idle_timeout(engine); + uint64_t shortest = ((remote && local) + ? std::min(remote, local) + : (remote) ? remote : local); + if (shortest) { + // send an idle frame at least twice before timeout + shortest = (shortest + 1)/2; + qpid::sys::Duration d(shortest * qpid::sys::TIME_MSEC); + ticker = boost::intrusive_ptr<qpid::sys::TimerTask>(new ConnectionTickerTask(d, driver->getTimer(), *this)); + driver->getTimer().add(ticker); + QPID_LOG(debug, id << " AMQP 1.0 idle-timeout set:" + << " local=" << pn_transport_get_idle_timeout(engine) + << " remote=" << pn_transport_get_remote_idle_timeout(engine)); + } + QPID_LOG(debug, id << " Opened"); return restartSessions(); @@ -1151,4 +1210,44 @@ bool ConnectionContext::CodecAdapter::ca } +// setup the transport and connection objects: +void ConnectionContext::configureConnection() +{ + pn_connection_set_container(connection, identifier.c_str()); + setProperties(); + if (heartbeat) { + // fail an idle connection at 2 x heartbeat (in msecs) + pn_transport_set_idle_timeout(engine, heartbeat*2*1000); + } + + bool enableTrace(false); + QPID_LOG_TEST_CAT(trace, protocol, enableTrace); + if (enableTrace) { + pn_transport_trace(engine, PN_TRACE_FRM); + set_tracer(engine, this); + } + + int err = pn_transport_bind(engine, connection); + if (err) + QPID_LOG(error, id << " Error binding connection and transport: " << err); +} + + +// check for failures of the transport: +bool ConnectionContext::checkTransportError(std::string& text) +{ + std::stringstream info; + +#ifdef USE_PROTON_TRANSPORT_CONDITION + pn_condition_t* tcondition = pn_transport_condition(engine); + if (pn_condition_is_set(tcondition)) + info << "transport error: " << pn_condition_get_name(tcondition) << ", " << pn_condition_get_description(tcondition); +#else + pn_error_t* terror = pn_transport_error(engine); + if (terror) info << "transport error " << pn_error_text(terror) << " [" << terror << "]"; +#endif + + text = info.str(); + return !text.empty(); +} }}} // namespace qpid::messaging::amqp Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/messaging/amqp/ConnectionContext.h URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/messaging/amqp/ConnectionContext.h?rev=1658748&r1=1658747&r2=1658748&view=diff ============================================================================== --- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/messaging/amqp/ConnectionContext.h (original) +++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/messaging/amqp/ConnectionContext.h Tue Feb 10 16:15:08 2015 @@ -25,6 +25,7 @@ #include <map> #include <memory> #include <string> +#include <boost/intrusive_ptr.hpp> #include <boost/shared_ptr.hpp> #include "qpid/Url.h" #include "qpid/messaging/ConnectionOptions.h" @@ -47,6 +48,7 @@ class ProtocolVersion; namespace sys { class SecurityLayer; struct SecuritySettings; +class TimerTask; } namespace messaging { class Duration; @@ -120,7 +122,7 @@ class ConnectionContext : public qpid::s void initSecurityLayer(qpid::sys::SecurityLayer&); void trace(const char*) const; - private: + private: typedef std::map<std::string, boost::shared_ptr<SessionContext> > SessionMap; class CodecAdapter : public qpid::sys::Codec { @@ -155,6 +157,7 @@ class ConnectionContext : public qpid::s std::auto_ptr<Sasl> sasl; CodecAdapter codecAdapter; bool notifyOnWrite; + boost::intrusive_ptr<qpid::sys::TimerTask> ticker; void check(); bool checkDisconnected(); @@ -191,6 +194,8 @@ class ConnectionContext : public qpid::s std::string getError(); bool useSasl(); void setProperties(); + void configureConnection(); + bool checkTransportError(std::string&); }; }}} // namespace qpid::messaging::amqp Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/messaging/amqp/DriverImpl.cpp URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/messaging/amqp/DriverImpl.cpp?rev=1658748&r1=1658747&r2=1658748&view=diff ============================================================================== --- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/messaging/amqp/DriverImpl.cpp (original) +++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/messaging/amqp/DriverImpl.cpp Tue Feb 10 16:15:08 2015 @@ -22,13 +22,14 @@ #include "Transport.h" #include "qpid/messaging/exceptions.h" #include "qpid/sys/Poller.h" +#include "qpid/sys/Timer.h" #include "qpid/log/Statement.h" namespace qpid { namespace messaging { namespace amqp { -DriverImpl::DriverImpl() : poller(new qpid::sys::Poller) +DriverImpl::DriverImpl() : poller(new qpid::sys::Poller), timer(new qpid::sys::Timer) { start(); } @@ -48,6 +49,7 @@ void DriverImpl::stop() QPID_LOG(debug, "Driver stopped"); poller->shutdown(); thread.join(); + timer->stop(); } boost::shared_ptr<Transport> DriverImpl::getTransport(const std::string& protocol, TransportContext& connection) Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/messaging/amqp/DriverImpl.h URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/messaging/amqp/DriverImpl.h?rev=1658748&r1=1658747&r2=1658748&view=diff ============================================================================== --- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/messaging/amqp/DriverImpl.h (original) +++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/messaging/amqp/DriverImpl.h Tue Feb 10 16:15:08 2015 @@ -29,6 +29,7 @@ namespace qpid { namespace sys { class Poller; +class Timer; } namespace messaging { namespace amqp { @@ -47,11 +48,14 @@ class DriverImpl void stop(); boost::shared_ptr<Transport> getTransport(const std::string& protocol, TransportContext& connection); + sys::Timer& getTimer() { return *timer; } static boost::shared_ptr<DriverImpl> getDefault(); private: boost::shared_ptr<qpid::sys::Poller> poller; qpid::sys::Thread thread; + std::auto_ptr<sys::Timer> timer; + static qpid::sys::Mutex defaultLock; static boost::weak_ptr<DriverImpl> theDefault; }; Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/messaging/amqp/Transport.h URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/messaging/amqp/Transport.h?rev=1658748&r1=1658747&r2=1658748&view=diff ============================================================================== --- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/messaging/amqp/Transport.h (original) +++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/messaging/amqp/Transport.h Tue Feb 10 16:15:08 2015 @@ -40,6 +40,7 @@ class Transport : public qpid::sys::Outp virtual ~Transport() {} virtual void connect(const std::string& host, const std::string& port) = 0; virtual void close() = 0; + virtual void abort() = 0; virtual const qpid::sys::SecuritySettings* getSecuritySettings() = 0; typedef Transport* Factory(TransportContext&, boost::shared_ptr<qpid::sys::Poller>); Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/messaging/amqp/windows/SslTransport.cpp URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/messaging/amqp/windows/SslTransport.cpp?rev=1658748&r1=1658747&r2=1658748&view=diff ============================================================================== --- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/messaging/amqp/windows/SslTransport.cpp (original) +++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/messaging/amqp/windows/SslTransport.cpp Tue Feb 10 16:15:08 2015 @@ -94,6 +94,9 @@ void SslTransport::negotiationDone(SECUR SslTransport::SslTransport(TransportContext& c, boost::shared_ptr<Poller> p) : TcpTransport(c, p) { const ConnectionOptions* options = context.getOptions(); + if (options->sslIgnoreHostnameVerificationFailure) { + sslCredential.ignoreHostnameVerificationFailure(); + } const std::string& name = (options->sslCertName != "") ? options->sslCertName : qpid::sys::ssl::SslOptions::global.certName; certLoaded = sslCredential.load(name); Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/store/MessageStorePlugin.h URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/store/MessageStorePlugin.h?rev=1658748&r1=1658747&r2=1658748&view=diff ============================================================================== --- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/store/MessageStorePlugin.h (original) +++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/store/MessageStorePlugin.h Tue Feb 10 16:15:08 2015 @@ -267,7 +267,7 @@ class MessageStorePlugin : }; StoreOptions options; - typedef std::map<const std::string, StorageProvider*> ProviderMap; + typedef std::map<std::string, StorageProvider*> ProviderMap; ProviderMap providers; ProviderMap::const_iterator provider; Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/sys/FreeBSD/uuid.cpp URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/sys/FreeBSD/uuid.cpp?rev=1658748&r1=1658747&r2=1658748&view=diff ============================================================================== --- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/sys/FreeBSD/uuid.cpp (original) +++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/sys/FreeBSD/uuid.cpp Tue Feb 10 16:15:08 2015 @@ -40,5 +40,5 @@ void uuid_generate (uint8_t out[qpid::sy out[7] = (uuid.time_hi_and_version & 0x00ff); out[8] = uuid.clock_seq_hi_and_reserved; out[9] = uuid.clock_seq_low; - ::memcpy(&out[10], &uuid.node, _UUID_NODE_LEN); + ::memcpy(&out[10], &uuid.node, sizeof(uuid.node)); } Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/sys/Thread.h URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/sys/Thread.h?rev=1658748&r1=1658747&r2=1658748&view=diff ============================================================================== --- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/sys/Thread.h (original) +++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/sys/Thread.h Tue Feb 10 16:15:08 2015 @@ -34,6 +34,8 @@ # define QPID_TSS __thread #elif defined (__SUNPRO_CC) # define QPID_TSS __thread +#elif defined (__IBMCPP__) +# define QPID_TSS __thread #else # error "Dont know how to define QPID_TSS for this platform" #endif Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/sys/posix/AsynchIO.cpp URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/sys/posix/AsynchIO.cpp?rev=1658748&r1=1658747&r2=1658748&view=diff ============================================================================== --- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/sys/posix/AsynchIO.cpp (original) +++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/sys/posix/AsynchIO.cpp Tue Feb 10 16:15:08 2015 @@ -93,7 +93,7 @@ private: AsynchAcceptor::AsynchAcceptor(const Socket& s, AsynchAcceptor::Callback callback) : acceptedCallback(callback), - handle(s, boost::bind(&AsynchAcceptor::readable, this, _1), 0, 0), + handle((const IOHandle&)s, boost::bind(&AsynchAcceptor::readable, this, _1), 0, 0), socket(s) { s.setNonblocking(); @@ -167,7 +167,7 @@ AsynchConnector::AsynchConnector(const S const std::string& port, ConnectedCallback connCb, FailedCallback failCb) : - DispatchHandle(s, + DispatchHandle((const IOHandle&)s, 0, boost::bind(&AsynchConnector::connComplete, this, _1), boost::bind(&AsynchConnector::connComplete, this, _1)), @@ -308,7 +308,7 @@ AsynchIO::AsynchIO(const Socket& s, ReadCallback rCb, EofCallback eofCb, DisconnectCallback disCb, ClosedCallback cCb, BuffersEmptyCallback eCb, IdleCallback iCb) : - DispatchHandle(s, + DispatchHandle((const IOHandle&)s, boost::bind(&AsynchIO::readable, this, _1), boost::bind(&AsynchIO::writeable, this, _1), boost::bind(&AsynchIO::disconnected, this, _1)), Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/sys/posix/Thread.cpp URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/sys/posix/Thread.cpp?rev=1658748&r1=1658747&r2=1658748&view=diff ============================================================================== --- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/sys/posix/Thread.cpp (original) +++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/sys/posix/Thread.cpp Tue Feb 10 16:15:08 2015 @@ -59,7 +59,7 @@ Thread::operator bool() { } bool Thread::operator==(const Thread& t) const { - return ::pthread_equal(impl->thread, t.impl->thread) != 0; + return pthread_equal(impl->thread, t.impl->thread) != 0; } bool Thread::operator!=(const Thread& t) const { Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/sys/posix/Time.cpp URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/sys/posix/Time.cpp?rev=1658748&r1=1658747&r2=1658748&view=diff ============================================================================== --- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/sys/posix/Time.cpp (original) +++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/sys/posix/Time.cpp Tue Feb 10 16:15:08 2015 @@ -24,6 +24,7 @@ #include "qpid/sys/Time.h" #include <ostream> #include <istream> +#include <sstream> #include <time.h> #include <stdio.h> #include <sys/time.h> @@ -106,13 +107,14 @@ std::istream& operator>>(std::istream& i if (i.eof() || std::isspace(i.peek())) // No suffix d = int64_t(number*TIME_SEC); else { - std::string suffix; - i >> suffix; + std::stringbuf suffix; + i >> &suffix; if (i.fail()) return i; - if (suffix.compare("s") == 0) d = int64_t(number*TIME_SEC); - else if (suffix.compare("ms") == 0) d = int64_t(number*TIME_MSEC); - else if (suffix.compare("us") == 0) d = int64_t(number*TIME_USEC); - else if (suffix.compare("ns") == 0) d = int64_t(number*TIME_NSEC); + std::string suffix_str = suffix.str(); + if (suffix_str.compare("s") == 0) d = int64_t(number*TIME_SEC); + else if (suffix_str.compare("ms") == 0) d = int64_t(number*TIME_MSEC); + else if (suffix_str.compare("us") == 0) d = int64_t(number*TIME_USEC); + else if (suffix_str.compare("ns") == 0) d = int64_t(number*TIME_NSEC); else i.setstate(std::ios::failbit); } return i; Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/sys/unordered_map.h URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/sys/unordered_map.h?rev=1658748&r1=1658747&r2=1658748&view=diff ============================================================================== --- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/sys/unordered_map.h (original) +++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/sys/unordered_map.h Tue Feb 10 16:15:08 2015 @@ -23,7 +23,7 @@ #if defined(_MSC_VER) || defined(_LIBCPP_VERSION) || __cplusplus >= 201103L # include <unordered_map> -#elif defined(__SUNPRO_CC) +#elif defined(__SUNPRO_CC) || defined(__IBMCPP__) # include <boost/tr1/unordered_map.hpp> #else # include <tr1/unordered_map> Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/sys/windows/SslCredential.cpp URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/sys/windows/SslCredential.cpp?rev=1658748&r1=1658747&r2=1658748&view=diff ============================================================================== --- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/sys/windows/SslCredential.cpp (original) +++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/sys/windows/SslCredential.cpp Tue Feb 10 16:15:08 2015 @@ -34,7 +34,7 @@ namespace sys { namespace windows { -SslCredential::SslCredential() : certStore(0), cert(0) +SslCredential::SslCredential() : certStore(0), cert(0), hostnameVerification(true) { SecInvalidateHandle(&credHandle); memset(&cred, 0, sizeof(cred)); @@ -60,6 +60,8 @@ bool SslCredential::load(const std::stri cred.paCred = &cert; cred.cCreds = 1; } + if (!hostnameVerification) + cred.dwFlags |= SCH_CRED_NO_SERVERNAME_CHECK; SECURITY_STATUS status = ::AcquireCredentialsHandle(NULL, UNISP_NAME, @@ -89,6 +91,10 @@ std::string SslCredential::error() return loadError.error; } +void SslCredential::ignoreHostnameVerificationFailure(){ + hostnameVerification = false; +} + void SslCredential::loadPrivCertStore() { // Get a handle to the system store or pkcs#12 file Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/sys/windows/SslCredential.h URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/sys/windows/SslCredential.h?rev=1658748&r1=1658747&r2=1658748&view=diff ============================================================================== --- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/sys/windows/SslCredential.h (original) +++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/sys/windows/SslCredential.h Tue Feb 10 16:15:08 2015 @@ -53,6 +53,8 @@ public: QPID_COMMON_EXTERN bool load(const std::string& certName); QPID_COMMON_EXTERN CredHandle handle(); QPID_COMMON_EXTERN std::string error(); + /** Proceed with connect inspite of hostname verifcation failures*/ + QPID_COMMON_EXTERN void ignoreHostnameVerificationFailure(); private: struct SavedError { @@ -70,6 +72,7 @@ private: CredHandle credHandle; TimeStamp credExpiry; SavedError loadError; + bool hostnameVerification; PCCERT_CONTEXT findCertificate(const std::string& name); void loadPrivCertStore(); Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/sys/windows/Thread.cpp URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/sys/windows/Thread.cpp?rev=1658748&r1=1658747&r2=1658748&view=diff ============================================================================== --- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/sys/windows/Thread.cpp (original) +++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/cpp/src/qpid/sys/windows/Thread.cpp Tue Feb 10 16:15:08 2015 @@ -224,7 +224,7 @@ Thread::Thread(Runnable* runnable) : imp Thread::Thread(Runnable& runnable) : impl(ThreadPrivate::createThread(&runnable)) {} Thread::operator bool() { - return impl; + return !!impl; } bool Thread::operator==(const Thread& t) const { --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org For additional commands, e-mail: commits-h...@qpid.apache.org