diff options
Diffstat (limited to 'cpp/src/IceSSL/SChannelEngine.cpp')
-rw-r--r-- | cpp/src/IceSSL/SChannelEngine.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/cpp/src/IceSSL/SChannelEngine.cpp b/cpp/src/IceSSL/SChannelEngine.cpp index 4b574b84934..107544e683a 100644 --- a/cpp/src/IceSSL/SChannelEngine.cpp +++ b/cpp/src/IceSSL/SChannelEngine.cpp @@ -290,13 +290,14 @@ SChannelEngine::initialize() } if(!caFile.empty()) { - if(!checkPath(caFile, defaultDir, false)) + string resolved; + if(!checkPath(caFile, defaultDir, false, resolved)) { throw PluginInitializationException(__FILE__, __LINE__, "IceSSL: CA certificate file not found:\n" + caFile); } - addCertificatesToStore(caFile, _rootStore); + addCertificatesToStore(resolved, _rootStore); } if(_rootStore) @@ -372,11 +373,13 @@ SChannelEngine::initialize() for(size_t i = 0; i < certFiles.size(); ++i) { string certFile = certFiles[i]; - if(!checkPath(certFile, defaultDir, false)) + string resolved; + if(!checkPath(certFile, defaultDir, false, resolved)) { throw PluginInitializationException(__FILE__, __LINE__, "IceSSL: certificate file not found:\n" + certFile); } + certFile = resolved; vector<char> buffer; readFile(certFile, buffer); @@ -463,10 +466,11 @@ SChannelEngine::initialize() err = 0; keyFile = keyFiles[i]; - if(!checkPath(keyFile, defaultDir, false)) + if(!checkPath(keyFile, defaultDir, false, resolved)) { throw PluginInitializationException(__FILE__, __LINE__, "IceSSL: key file not found:\n" + keyFile); } + keyFile = resolved; readFile(keyFile, buffer); if(buffer.empty()) |