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;
+}
+
}}