Browse Source

Merge pull request #10287 from mckellyln/hpcc-18059

HPCC-18059 Dafilesrv ssl client to be certificateless

Reviewed-By: Jake Smith <jake.smith@lexisnexis.com>
Reviewed-By: Richard Chapman <rchapman@hpccsystems.com>
Richard Chapman 7 years ago
parent
commit
13634588b7
1 changed files with 14 additions and 10 deletions
  1. 14 10
      common/remote/sockfile.cpp

+ 14 - 10
common/remote/sockfile.cpp

@@ -194,26 +194,30 @@ public:
 
 
 static CriticalSection              secureContextCrit;
-static Owned<ISecureSocketContext>  secureContext;
+static Owned<ISecureSocketContext>  secureContextServer;
+static Owned<ISecureSocketContext>  secureContextClient;
 
 #ifdef _USE_OPENSSL
-static ISecureSocket *createSecureSocket(ISocket *sock,SecureSocketType type)
+static ISecureSocket *createSecureSocket(ISocket *sock, SecureSocketType type)
 {
     {
         CriticalBlock b(secureContextCrit);
-        if (!secureContext)
+        if (type == ServerSocket)
         {
-            if (securitySettings.certificate)
-                secureContext.setown(createSecureSocketContextEx(securitySettings.certificate, securitySettings.privateKey, securitySettings.passPhrase, type));
-            else
-                secureContext.setown(createSecureSocketContext(type));
+            if (!secureContextServer)
+                secureContextServer.setown(createSecureSocketContextEx(securitySettings.certificate, securitySettings.privateKey, securitySettings.passPhrase, type));
         }
+        else if (!secureContextClient)
+            secureContextClient.setown(createSecureSocketContext(type));
     }
+    int loglevel = SSLogNormal;
 #ifdef _DEBUG
-    return secureContext->createSecureSocket(sock, SSLogMax);
-#else
-    return secureContext->createSecureSocket(sock);
+    loglevel = SSLogMax;
 #endif
+    if (type == ServerSocket)
+        return secureContextServer->createSecureSocket(sock, loglevel);
+    else
+        return secureContextClient->createSecureSocket(sock, loglevel);
 }
 #endif