Danushka Menikkumbura wrote:
When I try to build the latest trunk on Windows I get a build error in the method SaslAuthenticator::createAuthenticator. The reason is the classes NullAuthenticator and SspiAuthenticator being abstract as the getSecurityLayer is not implemented in either of them.

Sorry, that was my commit. I don't have a windows build setup yet and hadn't realised there was another file there.

Would you be willing to test if the attached patch fixes it?
Index: cpp/src/qpid/broker/windows/SaslAuthenticator.cpp
===================================================================
--- cpp/src/qpid/broker/windows/SaslAuthenticator.cpp	(revision 732283)
+++ cpp/src/qpid/broker/windows/SaslAuthenticator.cpp	(working copy)
@@ -43,6 +43,7 @@
     void getMechanisms(framing::Array& mechanisms);
     void start(const std::string& mechanism, const std::string& response);
     void step(const std::string&) {}
+    std::auto_ptr<SecurityLayer> getSecurityLayer(uint16_t maxFrameSize);
 };
 
 class SspiAuthenticator : public SaslAuthenticator
@@ -57,6 +58,7 @@
     void getMechanisms(framing::Array& mechanisms);
     void start(const std::string& mechanism, const std::string& response);
     void step(const std::string& response);
+    std::auto_ptr<SecurityLayer> getSecurityLayer(uint16_t maxFrameSize);
 };
 
 bool SaslAuthenticator::available(void)
@@ -109,7 +111,13 @@
     client.tune(framing::CHANNEL_MAX, connection.getFrameMax(), 0, 0);
 }
 
+std::auto_ptr<SecurityLayer> NullAuthenticator::getSecurityLayer(uint16_t)
+{
+    std::auto_ptr<SecurityLayer> securityLayer;
+    return securityLayer;
+}
 
+
 SspiAuthenticator::SspiAuthenticator(Connection& c) : userToken(INVALID_HANDLE_VALUE), connection(c), client(c.getOutput()) 
 {
 }
@@ -172,4 +180,10 @@
   QPID_LOG(info, "SASL: Need another step!!!");
 }
 
+std::auto_ptr<SecurityLayer> SspiAuthenticator::getSecurityLayer(uint16_t)
+{
+    std::auto_ptr<SecurityLayer> securityLayer;
+    return securityLayer;
+}
+
 }}

Reply via email to