Author: chug
Date: Thu Oct 21 22:04:07 2010
New Revision: 1026155

URL: http://svn.apache.org/viewvc?rev=1026155&view=rev
Log:
QPID-1672, r1024541 Failed to modify the windows-private SaslFactory. This 
commit:
* coerces CMake to include the two different SaslFactory sources into 
qpidcommon.
* modifies the windows SaslFactory to use the new interface constructs.
* adds QPID_COMMON_EXPORT to the Sasl code new to qpidcommon.


Modified:
    qpid/trunk/qpid/cpp/src/CMakeLists.txt
    qpid/trunk/qpid/cpp/src/qpid/SaslFactory.h
    qpid/trunk/qpid/cpp/src/qpid/client/windows/SaslFactory.cpp

Modified: qpid/trunk/qpid/cpp/src/CMakeLists.txt
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/CMakeLists.txt?rev=1026155&r1=1026154&r2=1026155&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/CMakeLists.txt (original)
+++ qpid/trunk/qpid/cpp/src/CMakeLists.txt Thu Oct 21 22:04:07 2010
@@ -626,6 +626,7 @@ if (CMAKE_SYSTEM_NAME STREQUAL Windows)
     qpid/sys/windows/SystemInfo.cpp
     qpid/sys/windows/Thread.cpp
     qpid/sys/windows/Time.cpp
+    qpid/client/windows/SaslFactory.cpp
     ${sslcommon_windows_SOURCES}
   )
 
@@ -642,7 +643,6 @@ if (CMAKE_SYSTEM_NAME STREQUAL Windows)
     ${windows_ssl_libs} ${windows_ssl_server_libs}
   )
   set (qpidclient_platform_SOURCES
-    qpid/client/windows/SaslFactory.cpp
     ${sslclient_windows_SOURCES}
   )
   set (qpidclient_platform_LIBS
@@ -694,6 +694,7 @@ else (CMAKE_SYSTEM_NAME STREQUAL Windows
     qpid/sys/posix/StrError.cpp
     qpid/sys/posix/Thread.cpp
     qpid/sys/posix/Time.cpp
+    qpid/SaslFactory.cpp
 
     ${qpid_poller_module}
   )
@@ -731,7 +732,6 @@ set (qpidcommon_SOURCES
      qpid/Options.cpp
      qpid/Plugin.cpp
      qpid/RefCountedBuffer.cpp
-     qpid/SaslFactory.cpp
      qpid/SessionState.cpp
      qpid/SessionId.cpp
      qpid/StringUtils.cpp

Modified: qpid/trunk/qpid/cpp/src/qpid/SaslFactory.h
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/SaslFactory.h?rev=1026155&r1=1026154&r2=1026155&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/SaslFactory.h (original)
+++ qpid/trunk/qpid/cpp/src/qpid/SaslFactory.h Thu Oct 21 22:04:07 2010
@@ -34,9 +34,9 @@ namespace qpid {
 class SaslFactory
 {
   public:
-    std::auto_ptr<Sasl> create(const std::string & userName, const std::string 
& password, const std::string & serviceName, const std::string & hostName, int 
minSsf, int maxSsf );
-    static SaslFactory& getInstance();
-    ~SaslFactory();
+    QPID_COMMON_EXTERN std::auto_ptr<Sasl> create(const std::string & 
userName, const std::string & password, const std::string & serviceName, const 
std::string & hostName, int minSsf, int maxSsf );
+    QPID_COMMON_EXTERN static SaslFactory& getInstance();
+    QPID_COMMON_EXTERN ~SaslFactory();
   private:
     SaslFactory();
     static qpid::sys::Mutex lock;

Modified: qpid/trunk/qpid/cpp/src/qpid/client/windows/SaslFactory.cpp
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/client/windows/SaslFactory.cpp?rev=1026155&r1=1026154&r2=1026155&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/client/windows/SaslFactory.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/client/windows/SaslFactory.cpp Thu Oct 21 
22:04:07 2010
@@ -19,8 +19,7 @@
  *
  */
 
-#include "qpid/client/SaslFactory.h"
-#include "qpid/client/ConnectionSettings.h"
+#include "qpid/SaslFactory.h"
 
 #include "qpid/Exception.h"
 #include "qpid/framing/reply_exceptions.h"
@@ -31,16 +30,46 @@
 #include "boost/tokenizer.hpp"
 
 namespace qpid {
-namespace client {
 
 using qpid::sys::SecurityLayer;
 using qpid::sys::SecuritySettings;
 using qpid::framing::InternalErrorException;
 
+struct WindowsSaslSettings
+{
+    WindowsSaslSettings ( ) :
+        username ( std::string(0) ),
+        password ( std::string(0) ),
+        service  ( std::string(0) ),
+        host     ( std::string(0) ),
+        minSsf ( 0 ),
+        maxSsf ( 0 )
+    {
+    }
+
+    WindowsSaslSettings ( const std::string & user, const std::string & 
password, const std::string & service, const std::string & host, int minSsf, 
int maxSsf ) :
+        username(user),
+        password(password),
+        service(service),
+        host(host),
+        minSsf(minSsf),
+        maxSsf(maxSsf)
+    {
+    }
+
+    std::string username,
+                password,
+                service,
+                host;
+
+    int minSsf,
+        maxSsf;
+};
+
 class WindowsSasl : public Sasl
 {
   public:
-    WindowsSasl(const ConnectionSettings&);
+    WindowsSasl( const std::string &, const std::string &, const std::string 
&, const std::string &, int, int );
     ~WindowsSasl();
     std::string start(const std::string& mechanisms, const SecuritySettings* 
externalSettings);
     std::string step(const std::string& challenge);
@@ -48,7 +77,7 @@ class WindowsSasl : public Sasl
     std::string getUserId();
     std::auto_ptr<SecurityLayer> getSecurityLayer(uint16_t maxFrameSize);
   private:
-    ConnectionSettings settings;
+    WindowsSaslSettings settings;
     std::string mechanism;
 };
 
@@ -72,9 +101,9 @@ SaslFactory& SaslFactory::getInstance()
     return *instance;
 }
 
-std::auto_ptr<Sasl> SaslFactory::create(const ConnectionSettings& settings)
+std::auto_ptr<Sasl> SaslFactory::create( const std::string & username, const 
std::string & password, const std::string & serviceName, const std::string & 
hostName, int minSsf, int maxSsf )
 {
-    std::auto_ptr<Sasl> sasl(new WindowsSasl(settings));
+    std::auto_ptr<Sasl> sasl(new WindowsSasl( username, password, serviceName, 
hostName, minSsf, maxSsf ));
     return sasl;
 }
 
@@ -83,8 +112,8 @@ namespace {
     const std::string PLAIN = "PLAIN";
 }
 
-WindowsSasl::WindowsSasl(const ConnectionSettings& s)
-  : settings(s) 
+WindowsSasl::WindowsSasl( const std::string & username, const std::string & 
password, const std::string & serviceName, const std::string & hostName, int 
minSsf, int maxSsf )
+  : settings(username, password, serviceName, hostName, minSsf, maxSsf) 
 {
 }
 
@@ -145,4 +174,4 @@ std::auto_ptr<SecurityLayer> WindowsSasl
     return std::auto_ptr<SecurityLayer>(0);
 }
 
-}} // namespace qpid::client
+} // namespace qpid



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]

Reply via email to