]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
Show error code if C_GetSlotInfo fails
authorAki Tuomi <cmouse@cmouse.fi>
Sun, 29 Mar 2015 15:55:13 +0000 (18:55 +0300)
committerAki Tuomi <cmouse@desteem.org>
Mon, 30 Mar 2015 07:30:26 +0000 (10:30 +0300)
pdns/pkcs11signers.cc

index 42786dfe5809f89c67db26f68c20528514bc8eee..52bc44616f53a0f1426a2ffa6ec9b5c5d3fa5122 100644 (file)
@@ -620,7 +620,7 @@ boost::shared_ptr<Pkcs11Token> Pkcs11Token::GetToken(const std::string& module,
   tidx.append(label);
   std::map<std::string, boost::shared_ptr<Pkcs11Token> >::iterator tokenIter;
   std::map<std::string, boost::shared_ptr<Pkcs11Slot> >::iterator slotIter;
-
+  CK_RV err;
   CK_FUNCTION_LIST* functions;
 
   if ((tokenIter = pkcs11_tokens.find(tidx)) != pkcs11_tokens.end()) return tokenIter->second;
@@ -641,8 +641,10 @@ boost::shared_ptr<Pkcs11Token> Pkcs11Token::GetToken(const std::string& module,
 
   // try to locate a slot
    _CK_SLOT_INFO info;
-  if (functions->C_GetSlotInfo(slotId, &info)) {
-    throw PDNSException(std::string("Cannot find PKCS#11 slot ") + boost::lexical_cast<std::string>(slotId) + std::string(" on module ") + module);
+  unsigned long slots;
+
+  if ((err = functions->C_GetSlotInfo(slotId, &info))) {
+    throw PDNSException(std::string("Cannot find PKCS#11 slot ") + boost::lexical_cast<std::string>(slotId) + std::string(" on module ") + module + std::string(": error code ") + boost::lexical_cast<std::string>(err));
   }
 
   // store slot