diff options
| author | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-07-31 15:45:54 +0300 |
|---|---|---|
| committer | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-07-31 15:45:54 +0300 |
| commit | e514b66b261c24257b149ecc6aaa52195509a2b5 (patch) | |
| tree | ae889a11eb88c36e3b70ebe8d83b7e60bc80408b /Software/Visual_Studio/Tango.Integration/ExternalBridge | |
| parent | a56427605302770b4c0a71a5ff4da439300a2250 (diff) | |
| download | Tango-e514b66b261c24257b149ecc6aaa52195509a2b5.tar.gz Tango-e514b66b261c24257b149ecc6aaa52195509a2b5.zip | |
Working on external bridge.
Diffstat (limited to 'Software/Visual_Studio/Tango.Integration/ExternalBridge')
| -rw-r--r-- | Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeService.cs | 47 | ||||
| -rw-r--r-- | Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeTcpClient.cs | 7 |
2 files changed, 34 insertions, 20 deletions
diff --git a/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeService.cs b/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeService.cs index e17a8eb71..99d841dd6 100644 --- a/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeService.cs +++ b/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeService.cs @@ -387,35 +387,44 @@ namespace Tango.Integration.ExternalBridge protected async virtual void OnExternalBridgeLoginRequest(MessageContainer container) { + var request = MessageFactory.ParseTangoMessageFromContainer<ExternalBridgeLoginRequest>(container); - LogManager.Log(String.Format("External bridge login attempt:{0}{1}", Environment.NewLine, request.ToJsonString())); + LogManager.Log(String.Format("External bridge login attempt:{0}{1}", Environment.NewLine, request.Message.ToJsonString())); - ExternalBridgeClientConnectedEventArgs args = new ExternalBridgeClientConnectedEventArgs(); - args.Request = request; - args.IpAddress = Adapter.Address; - ConnectionRequest?.Invoke(this, args); + if (MachineOperator.Status != MachineStatuses.Printing || request.Message.Intent != ExternalBridgeLoginIntent.Override) + { + ExternalBridgeClientConnectedEventArgs args = new ExternalBridgeClientConnectedEventArgs(); + args.Request = request; + args.IpAddress = Adapter.Address; + ConnectionRequest?.Invoke(this, args); - var response = new ExternalBridgeLoginResponse(); - response.Authenticated = args.Confirmed; - response.SerialNumber = Machine.SerialNumber; - response.DeviceInformation = MachineOperator.DeviceInformation; + var response = new ExternalBridgeLoginResponse(); + response.Authenticated = args.Confirmed; + response.SerialNumber = Machine.SerialNumber; + response.DeviceInformation = MachineOperator.DeviceInformation; - IsInSession = args.Confirmed; + IsInSession = args.Confirmed; - if (IsInSession) - { - LogManager.Log("External bridge client has logged-in successfully."); - MachineOperator.EnableDiagnostics = false; - MachineOperator.EnableEmbeddedDebugging = false; - SessionIntent = request.Message.Intent; + if (IsInSession) + { + LogManager.Log("External bridge client has logged-in successfully."); + MachineOperator.EnableDiagnostics = false; + MachineOperator.EnableEmbeddedDebugging = false; + SessionIntent = request.Message.Intent; + } + else + { + LogManager.Log("External bridge client login failed, invalid password."); + } + + await SendResponse<ExternalBridgeLoginResponse>(response, container.Token); } else { - LogManager.Log("External bridge client login failed."); + LogManager.Log("External bridge client login failed because the machine is currently printing."); + await SendResponse<ExternalBridgeLoginResponse>(new ExternalBridgeLoginResponse(), container.Token, false, ErrorCode.GeneralError, "Machine connection override is not permitted while printing."); } - - await SendResponse<ExternalBridgeLoginResponse>(response, container.Token); } #endregion diff --git a/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeTcpClient.cs b/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeTcpClient.cs index a704d30d1..9492386ed 100644 --- a/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeTcpClient.cs +++ b/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeTcpClient.cs @@ -100,7 +100,12 @@ namespace Tango.Integration.ExternalBridge catch (Exception ex) { LogRequestFailed(login, ex); - await base.Disconnect(); + try + { + await Adapter.Disconnect(); + } + catch { } + throw ex; } |
