activemq-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From tab...@apache.org
Subject svn commit: r928087 - in /activemq/activemq-cpp/trunk/activemq-cpp/src/main: Makefile.am decaf/net/ssl/SSLSocketFactory.cpp decaf/net/ssl/SSLSocketFactory.h
Date Fri, 26 Mar 2010 22:44:02 GMT
Author: tabish
Date: Fri Mar 26 22:44:01 2010
New Revision: 928087

URL: http://svn.apache.org/viewvc?rev=928087&view=rev
Log:
Adds the SSLSocketFactory interface to the API.

Added:
    activemq/activemq-cpp/trunk/activemq-cpp/src/main/decaf/net/ssl/SSLSocketFactory.cpp 
 (with props)
    activemq/activemq-cpp/trunk/activemq-cpp/src/main/decaf/net/ssl/SSLSocketFactory.h   (with
props)
Modified:
    activemq/activemq-cpp/trunk/activemq-cpp/src/main/Makefile.am

Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/main/Makefile.am
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/main/Makefile.am?rev=928087&r1=928086&r2=928087&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/main/Makefile.am (original)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/main/Makefile.am Fri Mar 26 22:44:01 2010
@@ -554,6 +554,7 @@ cc_sources = \
     decaf/net/URL.cpp \
     decaf/net/URLDecoder.cpp \
     decaf/net/URLEncoder.cpp \
+    decaf/net/ssl/SSLSocketFactory.cpp \
     decaf/nio/Buffer.cpp \
     decaf/nio/ByteBuffer.cpp \
     decaf/nio/CharBuffer.cpp \
@@ -1259,6 +1260,7 @@ h_sources = \
     decaf/net/URLEncoder.h \
     decaf/net/UnknownHostException.h \
     decaf/net/UnknownServiceException.h \
+    decaf/net/ssl/SSLSocketFactory.h \
     decaf/nio/Buffer.h \
     decaf/nio/BufferOverflowException.h \
     decaf/nio/BufferUnderflowException.h \

Added: activemq/activemq-cpp/trunk/activemq-cpp/src/main/decaf/net/ssl/SSLSocketFactory.cpp
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/main/decaf/net/ssl/SSLSocketFactory.cpp?rev=928087&view=auto
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/main/decaf/net/ssl/SSLSocketFactory.cpp (added)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/main/decaf/net/ssl/SSLSocketFactory.cpp Fri
Mar 26 22:44:01 2010
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "SSLSocketFactory.h"
+
+using namespace decaf;
+using namespace decaf::net;
+using namespace decaf::net::ssl;
+
+////////////////////////////////////////////////////////////////////////////////
+SSLSocketFactory::~SSLSocketFactory() {
+}
+
+////////////////////////////////////////////////////////////////////////////////
+SocketFactory* SSLSocketFactory::getDefault() {
+
+    return NULL;
+}

Propchange: activemq/activemq-cpp/trunk/activemq-cpp/src/main/decaf/net/ssl/SSLSocketFactory.cpp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: activemq/activemq-cpp/trunk/activemq-cpp/src/main/decaf/net/ssl/SSLSocketFactory.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/main/decaf/net/ssl/SSLSocketFactory.h?rev=928087&view=auto
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/main/decaf/net/ssl/SSLSocketFactory.h (added)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/main/decaf/net/ssl/SSLSocketFactory.h Fri
Mar 26 22:44:01 2010
@@ -0,0 +1,111 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _DECAF_NET_SSL_SSLSOCKETFACTORY_H_
+#define _DECAF_NET_SSL_SSLSOCKETFACTORY_H_
+
+#include <decaf/util/Config.h>
+
+#include <decaf/net/SocketFactory.h>
+
+#include <vector>
+#include <string>
+
+namespace decaf {
+namespace net {
+namespace ssl {
+
+    /**
+     * Factory class interface for a SocketFactory that can create SSLSocket objects.
+     *
+     * @since 1.0
+     */
+    class DECAF_API SSLSocketFactory : public SocketFactory {
+    public:
+
+        virtual ~SSLSocketFactory();
+
+        /**
+         * Returns the current default SSL SocketFactory, the factory is returned as a pointer
+         * however the caller does not own this pointer and should not delete it.
+         *
+         * The first time this method is called, the system property "ssl.SocketFactory.provider"
+         * is examined. If it is non-null, a class by that name is loaded and instantiated.
If
+         * that is successful and the object is an instance of SSLSocketFactory, it is made
the
+         * default SSL socket factory.
+         *
+         * Otherwise, this method returns SSLContext::getDefault().getSocketFactory(). If
that
+         * call fails, an non-functional factory is returned.
+         *
+         * @returns the default SSL SocketFactory pointer.
+         *
+         * @see decaf::net::ssl::SSLContext::getDefault()
+         */
+        static SocketFactory* getDefault();
+
+        /**
+         * Returns the list of cipher suites which are enabled by default. Unless a different
list
+         * is enabled, handshaking on an SSL connection will use one of these cipher suites.
The
+         * minimum quality of service for these defaults requires confidentiality protection
and
+         * server authentication (that is, no anonymous cipher suites).
+         *
+         * @returns an STL vector containing the list of cipher suites enabled by default.
+         *
+         * @see getSupportedCipherSuites()
+         */
+        virtual std::vector<std::string> getDefaultCipherSuites() = 0;
+
+        /**
+         * Returns the names of the cipher suites which could be enabled for use on an SSL
connection.
+         * Normally, only a subset of these will actually be enabled by default, since this
list may
+         * include cipher suites which do not meet quality of service requirements for those
defaults.
+         * Such cipher suites are useful in specialized applications.
+         *
+         * @returns an STL vector containing the list of supported cipher suites.
+         *
+         * @see getDefaultCipherSuites()
+         */
+        virtual std::vector<std::string> getSupportedCipherSuites() = 0;
+
+        /**
+         * Returns a socket layered over an existing socket connected to the named host,
at the given
+         * port. This constructor can be used when tunneling SSL through a proxy or when
negotiating
+         * the use of SSL over an existing socket. The host and port refer to the logical
peer
+         * destination. This socket is configured using the socket options established for
this factory.
+         *
+         * @param socket
+         *      The existing socket to layer over.
+         * @param host
+         *      The server host the original Socket is connected to.
+         * @param port
+         *      The server port the original Socket is connected to.
+         * @param autoClose
+         *      Should the layered over Socket be closed when the topmost socket is closed.
+         *
+         * @returns a new Socket instance that wraps the given Socket.
+         *
+         * @throws IOException if an I/O exception occurs while performing this operation.
+         * @throws UnknownHostException if the host is unknown.
+         */
+        virtual Socket* createSocket( Socket* socket, std::string host, int port, bool autoClose
)
+            throw( decaf::io::IOException, decaf::net::UnknownHostException ) = 0;
+
+    };
+
+}}}
+
+#endif /* _DECAF_NET_SSL_SSLSOCKETFACTORY_H_ */

Propchange: activemq/activemq-cpp/trunk/activemq-cpp/src/main/decaf/net/ssl/SSLSocketFactory.h
------------------------------------------------------------------------------
    svn:eol-style = native



Mime
View raw message