in src/Azure.AppService.Tunnel/Tunnel/SshOverWebSocketsTunnel.cs [34:64]
public async Task Start()
{
try
{
var debuggerAgentProcess = await StartDebuggerAgent();
var debuggerAgentProcessing = debuggerAgentProcess.WaitForExit();
var socketProcessing = _socketConnection.ConnectAndStartProcessing(debuggerAgentProcess.Port);
var webSocketProcessing = _webSocketConnection.Start();
var completedTask = await Task.WhenAny(debuggerAgentProcessing, socketProcessing, webSocketProcessing);
if (completedTask == debuggerAgentProcessing)
{
Terminate(WebSocketCloseStatus.NormalClosure, "Debugger Agent process exited");
}
else if (completedTask == socketProcessing)
{
Terminate(WebSocketCloseStatus.NormalClosure, "Socket connection closed");
}
else
{
Terminate("Web Socket connection closed");
}
}
catch (Exception exception)
{
_logger.Error(exception);
Terminate(WebSocketCloseStatus.InternalServerError, "Unknown error occured");
}
}