소스 검색

Fix to logging in proxy servers

Kenric Nugteren 1 년 전
부모
커밋
4693826563

+ 2 - 4
prs.server/Engines/Database/Proxies/DatabaseProxyEngine.cs

@@ -26,7 +26,6 @@ public abstract class DatabaseProxyEngine<TProperties> : Engine<TProperties>
         }
 
         ServerTransport = new RpcClientPipeTransport(DatabaseServerProperties.GetProxyName(Properties.Server));
-        ClientFactory.SetClientType(typeof(RpcClient<>), Platform.LicensingEngine, Version, ServerTransport);
         CheckConnection();
 
         RunProxy();
@@ -37,13 +36,12 @@ public abstract class DatabaseProxyEngine<TProperties> : Engine<TProperties>
     private void CheckConnection()
     {
         // Wait for server connection
-        while (!Client.Ping())
+        ServerTransport.Connect();
+        while (!ServerTransport.IsConnected())
         {
             Logger.Send(LogType.Error, "", "Database server unavailable. Trying again in 30 seconds...");
             Task.Delay(30_000).Wait();
             Logger.Send(LogType.Information, "", "Retrying connection...");
         }
-
-        ClientFactory.SetBypass();
     }
 }

+ 1 - 0
prs.server/Engines/Database/Proxies/PipeDatabaseProxyEngine.cs

@@ -30,6 +30,7 @@ internal class PipeDatabaseProxyEngine : DatabaseProxyEngine<PipeDatabaseProxyPr
         try
         {
             ProxyServer = new RpcPipeProxyServer(PipeName, ServerTransport);
+            ProxyServer.OnLog += Logger.Send;
             ProxyServer.Start();
         }
         catch (Exception eListen)

+ 13 - 9
prs.server/Engines/Database/Proxies/WebSocketDatabaseProxyEngine.cs

@@ -18,7 +18,7 @@ internal class WebSocketDatabaseProxyEngine : DatabaseProxyEngine<WebSocketDatab
 
     protected override void RunProxy()
     {
-        Logger.Send(LogType.Information, "", "Starting Listener on port " + Properties.ListenPort);
+        Logger.Send(LogType.Information, "", "Starting WebSocket Listener on port " + Properties.ListenPort);
 
         CertificateManager = new CertificateManager(CertificateFileName());
         CertificateManager.UpdateCertificate += CertificateManager_UpdateCertificate;
@@ -27,10 +27,7 @@ internal class WebSocketDatabaseProxyEngine : DatabaseProxyEngine<WebSocketDatab
 
         try
         {
-            var certificate = CertificateManager.GetCertificate();
-
-            ProxyServer = new RpcSocketProxyServer(Properties.ListenPort, ServerTransport, certificate);
-            ProxyServer.Start();
+            StartServer();
         }
         catch (Exception eListen)
         {
@@ -38,12 +35,20 @@ internal class WebSocketDatabaseProxyEngine : DatabaseProxyEngine<WebSocketDatab
         }
     }
 
+    private void StartServer()
+    {
+        var certificate = CertificateManager.GetCertificate();
+
+        ProxyServer = new RpcSocketProxyServer(Properties.ListenPort, ServerTransport, certificate);
+        ProxyServer.OnLog += Logger.Send;
+        ProxyServer.Start();
+    }
+
     private void CertificateManager_CertificateExpired()
     {
         Logger.Send(LogType.Information, "", "Expiry of certificate reached; restarting HTTPS listener...");
         ProxyServer.Stop();
-        ProxyServer = new RpcSocketProxyServer(Properties.ListenPort, ServerTransport, CertificateManager.GetCertificate());
-        ProxyServer.Start();
+        StartServer();
     }
 
     private void CertificateManager_CertificateExpiring(DateTime expiry)
@@ -60,8 +65,7 @@ internal class WebSocketDatabaseProxyEngine : DatabaseProxyEngine<WebSocketDatab
         Logger.Send(LogType.Information, "DATABASE", "HTTPS Certificate with greater expiry date found; restarting HTTPS listener...");
 
         ProxyServer.Stop();
-        ProxyServer = new RpcSocketProxyServer(Properties.ListenPort, ServerTransport, certificate);
-        ProxyServer.Start();
+        StartServer();
     }
 
     private string CertificateFileName() =>